Так как вы упомянули в своем вопросе, что вы не знаете, что такое jquery или ajax, я напишу небольшой ответ, объясняющий эти два (даже если поиск в Интернете предоставит вам тысячи объяснений!)
Jquery - это библиотека javascript, которая помогает вам писать кросс-браузерный / кроссплатформенный javascript, не беспокоясь о том, что вы пишете код JS для всех браузеров.Она стала известной и все еще широко использовалась, когда браузеры не использовали в большой степени стандартные реализации JS (особенно для манипуляций с DOM, обработки событий и AJAX.
С помощью jquery вы можете довольно легко манипулировать DOM (объектная модель документа)), который в основном все в окне вашего браузера (сам документ, теги тела и все другие теги в вашем документе). Когда я говорю, манипулировать, это означает, что вы можете программно добавлять новые теги, изменять теги, изменять содержимое тегов,искать определенные теги в теле, а затем воздействовать на них (изменять их CSS), что означает возможность изменять цвет DIV, границы, анимации и т. д.
То, что вы также можете делать, - это AJAX.Что такое AJAX, который вы спрашиваете.
AJAX - это сокращение от Aynchronous Javascript и XML. В двух словах, оно помогает вашей веб-странице (и, в частности, javascript на вашей веб-странице)совершать вызовы на бэкэнд-сервер (будь то ASP.NET, Python, PHP или что-нибудь на бэкенде), чтобыНажмите или потяните данные, без необходимости перезагрузить страницу.И отсюда название асинхронное.Потому что вы можете сделать несколько вызовов AJAX для нескольких бэкэндов, и ваша веб-страница не будет нуждаться в обновлении.Браузер автоматически позаботится о получении этих данных из бэкэнда и вызове функций, которые будут обрабатывать ответы.
Эти функции (функции javascript) могут затем использовать возвращенные данные, внести изменения в DOM (будь то обновление выпадающего списка), изменение цвета чего-либо, добавление значка уведомления или чего-либо, что ваше воображение может позволить вам вообразить.
Я настоятельно рекомендую вам начать с хотя бы взгляда напростой ресурс, охватывающий jquery и ajax, такой как w3schools , хотя некоторые считают, что это не самый лучший ресурс или не самый «заботящийся о безопасности» ресурс.Это отличная работа, по крайней мере, для того, чтобы дать вам преимущество, когда вы совершенно не разбираетесь в определенной теме.
Надеюсь, мой ответ поможет.
Просто чтобы помочь вам, я собираюсьнапишите некоторый код, который объединяет вызовы PHP, jquery и AJAX.Это всего лишь пример из проекта, над которым я работаю ...
$('#floor').change(function() { //A dropdown list...
//console.log("was floor triggered");
$('#currentTenants').html(""); //jquery at work...
$('#employeeDetailsForm').hide();
$('#tenantSummaryBar').css('background-color','rgba(255,255,255,1)'); //jquery adding new css to a DOM element
$('#tenantCount').html("");
var floorID = $(this).val(); //preparing my JSON object..
$.post(
'<?php echo $this->createUrl("EmployeeMovements/getRoomsFromFloorID"); ?>', //the backend which will asynchronously, without page refresh, receive the floor ID..
{data: floorID}, //telling AJAX what to send.. in a POST request, but asynchronously..almost like a FORM submit button, but without the refresh.
function(data) // the function that will be called WHEN the backend replies to us.. so your other JS can keep running... and when the browser is notified .. it'll come here to call this function.
{
var result = JSON.parse(data); //I receive the data in a JSON format (it could be XML), and I'm asking for JS to help parse it.
var newOptions = "";
for(i in result) //iterating through the result..
{
newOptions += "<option value='" + result[i]['roomID'] + "'>" + result[i]['roomCode'] + "</option>"; //preparing new 'options for a dropdown list based on the server's response
}
$('#room').html(newOptions); //using jquery to update yet another drop down list..
Код бэкэнда еще проще:
public function actiongetRoomsFromFloorID()
{
if(isset($_POST['data'])) //checking if there is POST data
{
$rooms = Rooms::model()->findAllByAttributes(array('floorID'=>$_POST['data'])); //using my frameworks's ORM to get my data based on what the FRONT END (AJAX query asked me..)
print json_encode($rooms); //sending back the data by just echoing back the response, and encoding in JSON format...
}
}