PHP избегает создания нескольких страниц

#php #jquery #html #ajax

#php #jquery #HTML #ajax

Вопрос:

Я студент 3 курса ИТ, один из моих модулей — webdesign, поэтому я довольно новичок в концепции, в моем задании мне нужно создать систему бронирования.

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

введите описание изображения здесь

На левой вертикальной панели навигации на изображении вы можете видеть, что у пользователя есть ряд опций, таких как просмотр резерваций, добавление новых автомобилей и т. Д

МОЙ ВОПРОС

Вместо того, чтобы создавать несколько страниц, таких как makereservation.php или addcars.php , которые на самом деле являются просто функциями, запрашивающими базу данных для отображения результата,

Я хотел бы знать, невозможно ли сохранить только эту страницу (панель мониторинга) и вызвать, добавить функцию внутри раздела содержимого, когда пользователь нажимает на соответствующую ссылку — таким образом, избегая создания ненужных дополнительных страниц.

Надеюсь, это имеет смысл, пожалуйста, не стесняйтесь спрашивать, если вам понадобится дополнительная информация

Комментарии:

1. ДА. Реальность такова, что любая страница может быть разбита на различные блоки, и хотя «щелчок» может загрузить целую страницу с немного другим содержимым, ваш код не обязательно полностью дублировать. Еще одним шагом было бы заставить ссылки запускать вызовы ajax для извлечения соответствующего содержимого и помещать его в контейнер с помощью javascript, но в этом нет необходимости.

2. Спасибо @sal да, я подумал, что потребуется какой-нибудь ajax, что, к сожалению, выше моих возможностей на данный момент, возможно, у вас есть пример, на который вы могли бы указать, который я мог бы использовать в качестве ссылки?

3. Вот кое-что с ajax, для чего я бы настоятельно рекомендовал вам использовать jQuery: ibm.com/developerworks/library/os-php-jquery-ajax . Кое-что на простом php можно посмотреть здесь: softwareengineering.stackexchange.com/questions/159529 /…

4. Итак, вы просто загружаете содержимое из базы данных? Вы могли бы присвоить всем своим ссылкам разные идентификаторы, а затем запустить событие при нажатии, которое выполняет AJAX-вызов основной функции, которая затем извлекает соответствующее содержимое страницы. Есть и другие способы, но этот самый простой, но не самый красивый… но во многих случаях простота всегда побеждает!

5. @TimBrownlaw ИМЕННО то, чего я надеялся достичь, я надеялся добавить ссылки к URL, извлекая результат из запросов …. возможно, какие-нибудь примеры?

Ответ №1:

query_to_db.php это единственная страница, которая выполняет запросы к базе данных и возвращает результат HTML

    <?php
    if(isset($_GET["type"]) amp;amp; !empty($_GET["type"]) amp;amp; $_GET["type"] == 'makereservation'){
        //your page makereservation.php code
        // echo HTML result
    }else if(isset($_GET["type"]) amp;amp; !empty($_GET["type"]) amp;amp; $_GET["type"] == 'addcars'){
        //your page addcars.php code
        // echo HTML result
    }
    ?>
  

и ваша HTML-страница

 <ul>
<!--each link below has onclick='searcQuery("REQUEST_TYPE_HERE")'
 witch will make XHR request with GET method-->
<li><a href='#' onclick='searcQuery("makereservation")'>makereservation</a></li>
<li><a href='#' onclick='searcQuery("addcars")'>addcars</a></li>
</ul>
<div id='book-body'></div>
<script>
function searcQuery(typ){
    var xmlhttp = new XMLHttpRequest();

  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 amp;amp; this.status == 200) {
      //print result to the div #book-body
      document.getElementById("book-body").innerHTML = this.responseText;
    }
  };
  xmlhttp.open("GET", "query_to_db.php", true);
  xmlhttp.send("amp;type=" typ);   
}
</script>