PHP включить веб-страницу, содержащую некоторые JS в DIV

Я хочу включить в мою веб-страницу еще одну веб-страницу. Я знаю, как это сделать.

<html>
<head>
<br>
<some links to external scripts...><br>
<br>
</head><br>
<body onload='$("#divkat").load("page1.php");'><br>
<div><br>
<br>
<br>
<div class="sidebar"><br>
              <h3>category :</h3><br>
         <a onclick='$("#divkat").load("page1.php");'>page1</a><br>
         <a onclick='$("#divkat").load("page2.php");'>page2</a><br>
         <a onclick='$("#divkat").load("page3.php");'>page3</a><br>
             <a onclick='$("#divkat").load("page2.php");'>page4</a><br>
           </div><br>
<br>
<br>
<div id="divkat"><br>< /div><br>
<  ! - - < ?php include( 'page1.php' ); ?>    - - ><br>
             < /div><br>
            < /div>
<br>
<br>
<br>
</body><br>
</html>

работает нормально

проблема в том, что "page1.php" содержит несколько shadowbox (лайтбокс). как это:

 <br>
< /div><br>
< div style="height:180px;width:180px;float:left;margin-top:15px;margin-left:15px;"><br>
< a href="img/panorama-split.jpg" rel="shadowbox; height=500; width=960"><br>< img src="img/tumb-kastel.jpg" alt="Klematis" width="180" height="180" />< /a><br>
< div>

главная страница не будет запускать JS. Если я открою "pag1.php", он будет работать нормально.

Я хочу создать веб-галерею (главную страницу, содержащую категории), когда я нажимаю на категорию, функция php включает страницу, содержащую элементы, которые открываются в shadowbox. Одно из решений состоит в том, чтобы иметь много страниц в виде категорий, но это не пиратское. Чтобы добавить новую категорию, вы должны отредактировать их все. Когда-нибудь, возможно, я запрограммирую интерфейс администратора для простого добавления новых категорий, изображений и других медиафайлов со ссылками и миниатюрами. Ofcorse с возможностью удаления и резервного копирования.

Спасибо

1 ответ

Решение

Одна из проблем, с которыми вы столкнулись, заключается в том, что вы используете комментарии HTML:

<  ! - -

Это означает, что когда PHP включает HTML в page1.php это будет фактически закомментировано. Попробуйте просто:

< ?php include( 'page1.php' ); ?><br/>

Вместо.

Что касается остальных, может быть, мы можем получить некоторые разъяснения. Page1.php не содержит JS, так как он может запускать JS в обычном режиме при его непосредственном открытии? Может быть, вы можете объяснить, что не работает нормально?

редактировать

У меня такое ощущение, что вы имеете в виду тело onLoad в вашем вопросе. Если так, то я всегда находил JQuery немного странным, когда помещал его непосредственно в HTML. Вместо этого вы можете попробовать запустить JQuery после загрузки самого DOM, поместив его в свой head тег:

<script type="text/javascript">
    $(function(){
        $("#divkat").load("page1.php");
    });
</script>

И замените тег body на:

<body>

Также для гиперссылок вы могли бы захотеть использовать события JQuery, используя функцию on(): http://api.jquery.com/on/

Другие вопросы по тегам