#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>