Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > проблема с PHP + JavaScript : display()


Автор: hldm 12.3.2007, 23:39
Существует проблема с выполнением функции JS-та display() в PHP . Обыскал весь интернет, ничего не нашел. Вообщем, проблема в следующем: 
Есть php-код, в который вставлен JavaScript. Когда пользователь получает сгенерированный сервером нижеследующий php-код , JS не 
работает. 
Тестировано на двух серверах.
При формировании html документа, аналогичного по содержаннию (за исключением, конечно, <php echo ?> ) , JS работает. В чем может быть дело и как решить эту поблему?

Код

<?php
echo "<script language='JavaScript' type='text/javascript'>
function drop(name)
{
    if(document.getElementById(name).style.display=='none')
    {
    document.getElementById(name).style.display='block';
    }
    else
    {
    document.getElementById(name).style.display='none';
    }
}
</script>
<div id='0' onClick=drop('2');>
++ <a href='#'>Папка2</a>
</div>
<div id='2' style='display:none; margin-left: 1cm' >
<div id='2' onClick=drop('21');>
++ <a href='#'>Папка21</a>
</div>
<div id='21' style='display:none; margin-left: 1cm' >
--sep-->
</div>
--sep-->
<b>МП2-У, ВП2-У, МВП2-У  <i>Манометры технические, вакуумметры, мановакуумметры</i></b>
</div>

<div id='0' onClick=drop('4');>
++ <a href='#'>Папка4</a>
</div>
<div id='4' style='display:none; margin-left: 1cm' >
--sep-->
</div>

<div id='0' onClick=drop('1');>
++ <a href='#'>Папка1</a>
</div>
<div id='1' style='display:none; margin-left: 1cm' >
--sep-->
</div>";
?>


Суть кода заключается в раскрытии/закрытии папок по щелчку.

Автор: BrutalizedProgrammer 12.3.2007, 23:56
ну насчет почему имеено display не работает я не знаю (
но скажу что пользователь не получает пхп код.. он получает только то,
что этот код сгенерировал... 

Автор: boombick 13.3.2007, 09:18
Ну посмотрите сгенерированный javascript? Он вообще есть на странице? если есть, то какие ошибки выдает...
И вообще, по-моему, оффтопик smile

Автор: hldm 13.3.2007, 13:15
Цитата(BrutalizedProgrammer @  12.3.2007,  23:56 Найти цитируемый пост)
ну насчет почему имеено display не работает я не знаю (
но скажу что пользователь не получает пхп код.. он получает только то,
что этот код сгенерировал...  


Извините, оговорился. "Пользователь получает сгенерированный сервером html-код". Думаю, это и так было понятно. Но вопрос остается открытым..
Причем, повторюсь, если создать html документ с нижеследующим содержанием, то все работает:
Код

<script language='JavaScript' type='text/javascript'>
function drop(name)
{
    if(document.getElementById(name).style.display=='none')
    {
    document.getElementById(name).style.display='block';
    }
    else
    {
    document.getElementById(name).style.display='none';
    }
}
</script>
<div id='0' onClick=drop('2');>
++ <a href='#'>Папка2</a>
</div>
<div id='2' style='display:none; margin-left: 1cm' >
<div id='2' onClick=drop('21');>
++ <a href='#'>Папка21</a>
</div>
<div id='21' style='display:none; margin-left: 1cm' >
--sep-->
</div>
--sep-->
<b>МП2-У, ВП2-У, МВП2-У  <i>Манометры технические, вакуумметры, мановакуумметры</i></b>
</div>

<div id='0' onClick=drop('4');>
++ <a href='#'>Папка4</a>
</div>
<div id='4' style='display:none; margin-left: 1cm' >
--sep-->
</div>

<div id='0' onClick=drop('1');>
++ <a href='#'>Папка1</a>
</div>
<div id='1' style='display:none; margin-left: 1cm' >
--sep-->
</div>


Добавлено @ 13:16 
Цитата(boombick @  13.3.2007,  09:18 Найти цитируемый пост)
Ну посмотрите сгенерированный javascript? Он вообще есть на странице? если есть, то какие ошибки выдает...

Есть, ошибок никаких не выдает

Автор: hldm 13.3.2007, 22:23
Та же порблема другими словами:

html документ с содержанием :
Код

<script language='JavaScript' type='text/javascript'>
alert('5');
</script>

выводит  '5' на экран

выполненный php-код: 
Код

<?php
echo "
<script language='JavaScript' type='text/javascript'>
alert('5');
</script>";
?>

НЕ выводит  '5' на экран

Автор: hldm 14.3.2007, 14:57
Проблема устранена. Решение заключалось в настройках браузера клиенткой стороны.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)