Показать/скрыть div в php, используя Jquery

у меня есть страница с именем div_1.php с div внутри.

 <div id="div_1"></div>

у меня есть страница с именем index.php с:

 <div id="div_menu"></div>

<?php include("div_1.php"); ?>

Видимость "div_menu" верна. Видимость по умолчанию для "div_1" установлена ​​в false в style.css.

#div_1{
    display: none;
}

Функция jQuery показать/скрыть "div_1":

$('.form_name').click(function() {
    // Hide the menu
    $('#div_menu').hide();

    if(this.id == "form_choice1"){
        // Show the div
        $('#div_1').show();
    }
});

Первая часть (скрытие "div_menu") работает нормально, а вторая не работает!!! если я копирую и вставляю содержимое div_1.php в index.php, все работает нормально!

Почему jQuery не может получить доступ к этому div? Что не так, когда div находится внутри файла php? Я думал, что php включает только копию содержимого вызываемой страницы внутри вызывающей страницы.


person ahebert    schedule 19.04.2012    source источник
comment
Я полагаю, вы имели в виду </div>, а не <!div>?   -  person Aaron W.    schedule 19.04.2012
comment
Вы уверены, что div_1.php действительно включен правильно? Вы видите это в Firebug или когда делаете View Source?   -  person Steve    schedule 19.04.2012
comment
Можете ли вы опубликовать больше кода или, возможно, полный пример кода? То, что у вас есть, должно работать без проблем.   -  person matthewpavkov    schedule 19.04.2012
comment
Оператор Throw and alert внутри вашего оператора if, убедитесь, что его содержимое срабатывает. оповещение (если срабатывает)..   -  person Matt Moore    schedule 19.04.2012
comment
PHP не имеет ничего общего с jquery, если только вы не выполняете вызов ajax. Это может быть php, генерирующий страницу на сервере, но это просто html/css/js, достигающий пользователя, а НЕ php.   -  person Marc B    schedule 19.04.2012
comment
Кроме того, в каком порядке вы включаете div_1.php и функцию javascript, которую вы опубликовали? Это должен быть div_1.php, ЗАТЕМ JS. Если у вас есть JS до включения, он НЕ будет работать.   -  person Steve    schedule 19.04.2012
comment
@ Стив, правда? Почему? Я предполагаю, что он использует обработчик $(document).ready() и, что включенные элементы со страницы php находятся на странице до ее отправки в браузер (и не загружаются динамически). Однако очевидно, что оба этих предположения могут быть ошибочными.   -  person David says reinstate Monica    schedule 20.04.2012
comment
@DavidThomas Ну, я не предполагаю, что он использует $(document).ready()... Если я вижу ‹!div›, я больше ничего не предполагаю. :) Кроме того, что касается вашего второго предположения: даже если он отправлен в браузер одновременно и порядок неправильный, $('div_1') не найдет элемент (если только он не использует $(document).ready ()).   -  person Steve    schedule 20.04.2012


Ответы (2)


Похоже, вы не правильно закрываете свои теги. Это, вероятно, сбивает с толку браузер. Формат </div>, а не <!div>. Кроме этого, вы сравнивали HTML, сгенерированный обоими? Вроде должны быть такие же. Проверьте свой браузер, чтобы найти различия.

person vansimke    schedule 19.04.2012
comment
Я тоже так думал... но у него это работает, когда он вставляет его прямо на страницу. Мне интересно, чем это объясняется. - person Matt Moore; 19.04.2012
comment
‹!div› был всего лишь опечаткой/ошибкой копирования. Я обнаружил, что PHP не работает на моем веб-сервере (причал 8) - person ahebert; 20.04.2012

Я узнал, что PHP не работает на моем веб-сервере (причал 8)...

Я попытаюсь включить файлы js и использовать функцию document.write, но это очень уродливо!

person ahebert    schedule 20.04.2012