Использование переменной на форуме
Здравствуйте! Решил на форуме сделать карту. Понял, что без JS тут не обойтись, стал изучать, параллельно начав писать код.
Необходимо, чтобы объект(имя посетителя) находился на определённой позиции изображения, в зависимости от расположения на форуме. Для начала, создал сам объект. Положение объекта зависит от переменной {reg_user_row.FORUM_LOCATION}, чтобы JS мог ей использовать создал невидимый <span>. Решил проверить с помощью "document.write", как код воспринимает переменную и сразу же столкнулся с проблемой. Вне зависимости от того, где находится пользователь, код всегда выдает "На главной странице". Подскажите, что не так? <table id="locate"> <tr> <td class="ribbon">{reg_user_row.USERNAME}</td> </tr> </table> <span id="location" hidden>{reg_user_row.FORUM_LOCATION}</span> <script type="text/javascript"> loc = document.getElementById('location'); if (loc = 'В оглавлении форума') { document.write("На главной странице"); } else if (loc = 'Подфорум1') { document.write("Просматривает Подфорум1"); } else { document.write("Неизвестно, что и просматривает"); } </script> |
Kiselboom,
Нун анализировать текущий адрес страницы var addres = location.href.replace(/#.*$/,''); //.replace - обрезаем хеш |
Почему-то мне кажется, что ошибка в самом коде. Может в операторе дело?
Если убираю hidden, то сама переменная {reg_user_row.FORUM_LOCATION} показывает правильное расположение, к примеру "Подфорум1", а вот document.write всё равно выдаёт "На главной странице". |
Цитата:
<table id="locate"> <tr> <td class="ribbon">{reg_user_row.USERNAME}</td> </tr> </table> <span id="location" hidden>{reg_user_row.FORUM_LOCATION}</span> <script type="text/javascript"> function tst () { loc = document.getElementById('location').innerHTML; alert(loc) if (loc == 'В оглавлении форума') {document.write("На главной странице");return;} if (loc == 'Подфорум1') {document.write("Просматривает Подфорум1");return;} else {document.write("Неизвестно, что и просматривает");return;} } tst () </script> |
Kiselboom,
Deff, чего - то в супе нехватает loc = document.getElementById('location'); |
No. Теперь всегда выдаёт только "Неизвестно, что и просматривает".
|
рони,
Чего же? |
Kiselboom,
Воткнул alert(loc) рони, CПС - не углядел |
Deff,
Ан нет. Теперь c alert(loc) вообще ничего не пишет и окна не появлется... |
Kiselboom, Значит что-то не так в PHP {reg_user_row.FORUM_LOCATION}
<table id="locate"> <tr> <td class="ribbon">{reg_user_row.USERNAME}</td> </tr> </table> <span id="location" hidden>{reg_user_row.FORUM_LOCATION}</span> <script type="text/javascript"> function tst () { loc = document.getElementById('location').innerHTML; alert(loc) if (loc == 'В оглавлении форума') {document.write("На главной странице");return;} if (loc == 'Подфорум1') {document.write("Просматривает Подфорум1");return;} else {document.write("Неизвестно, что и просматривает");return;} } tst () </script> |
Deff,
alert заработал, когда поставил точку с запятой. И выдал странную вещь. Сейчас на форуме 2 пользователя. Если убрать hidden, около одного переменная показывает "Форум", у второго пользователя показывает "В оглавлении форума". То есть переменная показывает правильные данные. НО при этом alert(loc) выдаёт 2 окна "Форум" и "Форум"... |
Цитата:
используйте id=userId+location |
Можно поподробнее, а то я никак не допендрю что мне сейчас делать...
|
Kiselboom,
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Возможно неверное их заполнение, - проще дать ссылку на тест страницу И обычно, можно тестить местонахождение просто по адресу текущей ссылки или почему не выдавать PHP - cразу итоговое для alert ?(тогда и тестить скриптом не надо |
Цитата:
|
Kiselboom,
Приведите концовки ссылок для главной и форум |
Deff,
"В оглавлении форума" - нет окончания "Форум" - /viewonline (на этой странице находится сам код) Подфорум1 - /f3-forum |
<script type="text/javascript"> function tst () { loc = location.href.replace(eval("/^.*"+location.hostname+"/i"),'').replace(/#.*$/,'').split('/');// loc = loc[loc.length-1];alert(loc) if (loc=='') {document.write("На главной странице");return;} if (loc.indexOf('-forum')!=-1) {document.write("Просматривает Подфорум1");return;} else {document.write("Неизвестно, что и просматривает");return;} } tst () </script> |
Deff,
Спасибо за труд, а как мне это привязать к моему коду? |
Цитата:
|
Нет, такая фишка не прокатывает... Код не пишет вообще ничего...
Можно спросить, каким образом ваш код должен узнавать, на какой странице находится тот или иной пользователь? |
Kiselboom,
Наверно плохо пояснили - что и как действет код на текущей странице ? "Форум" - /viewonline ставите фреймом ? Приведенный код в посте 21 ставится на текущую страницу |
Deff,
Извините. но видимо я ещё совсем нуб, и не понимаю, что вы от меня хотите сейчас узнать... Пожалуй стоит самому ещё поразбираться. Спасибо за помощь! |
Kiselboom,
*Поправил код |
Нет. По прежнему ничего. Даже окно не выскакивает.
|
Kiselboom,
:) ясно - у Вас код стоит /viewonline стоит отдельной страницей - занчит мои предложения пост 21 - можно в урну |
Deff,
Кстати, подумал так, что с помощью switch поудобнее будет... Значит будем разбираться, как сделать разные id для {reg_user_row.FORUM_LOCATION}... Хм... А если сделать несколько <span id="location" hidden>{reg_user_row.FORUM_LOCATION}</span> с разными id, и к каждому свой скрипт, прокатит, как думаете? |
Хотя, вряд ли, будет всё равно каждое выдавать результаты для первого юзера в списке, то есть для админа....
|
Kiselboom,
Нужен полнвй код страницы для несколькуих юзеров Желательно глянуть на Инет - макет |
Kiselboom,
Нужен полный код страницы для нескольких юзеров Желательно глянуть на Инет - макет |
Всё, что я вам дал, это и есть полный код страницы) Ну, не считая хидера. На самом деле я на форуме просто пытаюсь передалать под свои нужды страницу форума "Кто сейчас онлайн". Если что, вот она:
<table width="100%" border="0" cellspacing="2" cellpadding="0" align="center"> <!-- BEGIN googlemap --> <tr> <td><br /> <iframe frameborder="0" scrolling="no" width="100%" height="450" src="{googlemap.U_GOOGLEMAP}"></iframe><br /> <br /> </td> </tr> <!-- END googlemap --> <tr> <td><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td> </tr> </table> <table class="forumline" width="100%" border="0" cellspacing="1" cellpadding="4"> <tr> <th class="thCornerL" width="35%" height="25">{L_USERNAME}</th> <th class="thTop" width="25%">{L_LAST_UPDATE}</th> <th class="thCornerR" width="40%">{L_FORUM_LOCATION}</th> </tr> <tr> <td class="catSides" colspan="3" height="28"><span class="cattitle"><b>{TOTAL_REGISTERED_USERS_ONLINE}</b></span></td> </tr> <!-- BEGIN reg_user_row --> <tr> <td class="{reg_user_row.ROW_CLASS}" width="35%"><span class="gen"><a class="gen" href="{reg_user_row.U_USER_PROFILE}">{reg_user_row.USERNAME}</a></span></td> <td class="{reg_user_row.ROW_CLASS}" align="center" nowrap="nowrap" width="25%"><span class="gen">{reg_user_row.LASTUPDATE}</span></td> <td class="{reg_user_row.ROW_CLASS}" width="40%"><span class="gen"><a class="gen" href="{reg_user_row.U_FORUM_LOCATION}">{reg_user_row.FORUM_LOCATION}</a></span></td> </tr> <!-- END reg_user_row --> <tr> <td class="row3" colspan="3" height="1"><img src="http://illiweb.com/fa/empty.gif" alt="." height="1" width="1"></td> </tr> <tr> <td class="catSides" colspan="3" height="28"><span class="cattitle"><b>{TOTAL_GUEST_USERS_ONLINE}</b></span></td> </tr> <!-- BEGIN bot_user_row --> <tr> <td class="{bot_user_row.ROW_CLASS}" width="35%"><span class="gen">{bot_user_row.USERNAME}</span></td> <td class="{bot_user_row.ROW_CLASS}" align="center" nowrap="nowrap" width="25%"><span class="gen">{bot_user_row.LASTUPDATE}</span></td> <td class="{bot_user_row.ROW_CLASS}" width="40%"><span class="gen"><a class="gen" href="{bot_user_row.U_FORUM_LOCATION}">{bot_user_row.FORUM_LOCATION}</a></span></td> </tr> <!-- END bot_user_row --> <!-- BEGIN guest_user_row --> <tr> <td class="{guest_user_row.ROW_CLASS}" width="35%"><span class="gen">{guest_user_row.USERNAME}</span></td> <td class="{guest_user_row.ROW_CLASS}" align="center" nowrap="nowrap" width="25%"><span class="gen">{guest_user_row.LASTUPDATE}</span></td> <td class="{guest_user_row.ROW_CLASS}" width="40%"><span class="gen"><a class="gen" href="{guest_user_row.U_FORUM_LOCATION}">{guest_user_row.FORUM_LOCATION}</a></span></td> </tr> <!-- END guest_user_row --> </table> <table width="100%" border="0" cellspacing="2" cellpadding="0" align="center"> <tr> <td align="left" valign="top"><span class="gensmall">{L_ONLINE_EXPLAIN}</span></td> <td align="right" valign="top"><span class="gensmall">{S_TIMEZONE}</span></td> </tr> </table> <br /> <table width="100%" border="0" cellspacing="2" align="center"> <tr> <td align="right" valign="top">{JUMPBOX}</td> </tr> </table> |
Цитата:
|
Kiselboom,
:) Почему не создать ячейку нахождения юзера в данный момент тоже PHP ? Пример => http://forum.mybb.ru/online.php |
Deff,
Пример, который вы мне скинули, именно так и выглядит страница, после на писания кода из поста 34, это стандартный шаблон форума, его я и переделываю))) Прикол в том, что мне нужно использовать это значение нахождения, что потом в зависимости от него происходили определённые действия) |
Цитата:
|
Вообще цель моих действий такова. Изображение в виде карты. На карте различные комнаты, здания, локации - что угодно. Вот это объект:
<table id="locate"> <tr> <td class="ribbon">{reg_user_row.USERNAME}</td> </tr> </table> Состоит из картинки(прописана в CSS) и текст(как видно, имени пользователя). Он перемещается в пределе определённой области, а вот какой области, как раз и зависит от {reg_user_row.FORUM_LOCATION}. То есть, если юзер находится на главной странице, на карте его ник находится, к примеру в углу, если другой юзер находится в "подфорум1", его ник на карте - другом углу и т.д. |
P.S. Примерно как вот здесь: http://unohog.ru/maps.php
|
Часовой пояс GMT +3, время: 21:06. |