powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перезагрузка функции
6 сообщений из 6, страница 1 из 1
Перезагрузка функции
    #35796231
Kulikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть код на РНР, который просто вызывает функцию JavaScript с использованием innerHTML и подставляет значения из БД MySQL
собственно, код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?php
    echo("<table width='99%' border='0'>");
    $text="select property_group_id, property_group_name from property_group where property_group_subcat_id=$_GET[subcat]";
    $query=mysql_query($text);
        if(mysql_num_rows($query)> 0 ){
            while($temp=mysql_fetch_array($query)) {
                echo("<script>");
                    echo("function show(elem) {");
                        echo("if (document.getElementById('t'+elem.id).className == 'hidden') {");
                            echo("document.getElementById('t'+elem.id).className = 'white';");
                            echo("elem.innerHTML =  '- $temp[property_group_name]';");
                        echo("} else {");
                            echo("document.getElementById('t'+elem.id).className = 'hidden';");
                            echo("elem.innerHTML =  '+ $temp[property_group_name]';");
                        echo("}");
                    echo("}");
                echo("</script>");
                echo("<tr><td><div style='text-align: left;'><span id='r_$temp[property_group_id]' onclick='show(this);'>+ $temp[property_group_name]</span></div></td></tr>");
                echo("<tr id='tr_$temp[property_group_id]' class='hidden'><td colspan=1>");
                    $stext="select * from property where property_group_id=$temp[property_group_id] and property_search=1";
                    $squery=mysql_query($stext);
                    while($stemp=mysql_fetch_array($squery)) {
                        echo("<fieldset width='98%'>");
                            echo("<legend>$stemp[property_name]</legend>");
                        echo("</fieldset>");
                    }
                echo("</td></tr>");
            }
        }
    echo("</table>");
?>
Всё работает отлично, кроме одного "но": строки echo("elem.innerHTML =  '- $temp[property_group_name]';"); и echo("elem.innerHTML =  '+ $temp[property_group_name]';"); получают значение переменной $temp[property_group_name] только один раз, а я ожидал, что, т.к. функция объвявляется внутри цикла while($temp=mysql_fetch_array($query)) { }, то и будет получать значения каждого следующего прохода. 
В итоге я имею такое - при загрузке страницы всё выглядит просто идеально, названия группы свойств выводятся, как положено. Как только стоит мне нажать на "+" или "-" - названия меняются на первое из прохода цикла. Как с этим побороться, подскажите, плиз 

...
Рейтинг: 0 / 0
Перезагрузка функции
    #35796322
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и понятное дело. Пхп у Вас выполняется только при загрузке страницы, а яваскрипт - на странице. Вы всё увидите в firebug, например.
ПС так писать, т.е. яваскрипт формировать с помощью "echo" - самое плохое, что можно придумать.
...
Рейтинг: 0 / 0
Перезагрузка функции
    #35796352
Kulikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как правильно переделать? Посоветуйте, плиз
...
Рейтинг: 0 / 0
Перезагрузка функции
    #35796386
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, открыть сформированную страничку по правой кнопке мыши (исходный хтмл, тоесть) и посмотреть сформированный яваскрипт. Если не поможет (в данном случае - поможет) установить фиребуг.
...
Рейтинг: 0 / 0
Перезагрузка функции
    #35796510
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынць (closures/замыкания)?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перезагрузка функции
    #35796559
Kulikoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, спасибо большое! Просто добавил уникальный идентификатор к имени функции JavaScript. На первое время сойдет, буду учить JavaScript - буду оптимизировать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перезагрузка функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]