Как вернуть новую переменную из ajax запроса?
Имеется код с использованием ajax
$.ajax({
type: "POST",
url: '/php/array_master_time.php',
data: { // что отправляем
"master": master, "Polina_date": Polina_date
},
success: function(response)
{
alert(51);
}
});
собственно код обработки этого запроса на php
if($_POST['master']&&$_POST['Polina_date'])
{
$master = $_POST['master'];
$date_Polina = $_POST['Polina_date'];
$query = "SELECT * FROM `#desavir_Полина` WHERE date ='$date_Polina'";
$t = mysqli_query($connect, $query); //Отправляем запрос
exit($t);
}
и то где в последствии должна использоваться $t
div id="Polina_time" class="label_time_box">
<?php while ($row = mysqli_fetch_assoc($t)) {
echo '<label class="label-date">
<input type="radio" name="Polina_time" value=" '.$row['time'].' ">
<snap class="info_of_time">'.$row['date'].' </snap></label>';
}?>
</div>
Задача состоит в том чтоб обновит переменную t на странице, содержащую в себе массив БД. Как это реализовать? код на полный html html php_time JAVA
Ответы (1 шт):
PHP:
if($_POST['master']&&$_POST['Polina_date'])
{
$master = $_POST['master'];
$date_Polina = $_POST['Polina_date'];
$query = "SELECT * FROM `#desavir_Полина` WHERE date ='$date_Polina'";
$t = mysqli_query($connect, $query); //Отправляем запрос
$output = $t->fetch_assoc(); // переводим результат запроса в ассоциативный массив
print_r($output); // выводим этот результат на страницу
exit($t);
}
JS:
$.ajax({
type: "POST",
url: '/php/array_master_time.php',
data: { // что отправляем
"master": master, "Polina_date": Polina_date
},
success: function(response) // в переменной response остаётся результат выполнения PHP скрипта
{
$("div#myResult").html(response); // div'у с id="myResult" меняем содержимое на то, что вывел скрипт
}
});
Данное действие просто выведет ответ, который отдал MySQL запрос в виде читабельного текста.
Для последующего размещения необходимых данных по нужным блокам, используйте JSON:
PHP:
$output = $t->fetch_assoc(); // переводим результат запроса в ассоциативный массив
echo json_encode($output); // переводим массив в JSON-строку и выводим на страницу
JS:
success: function(response) {
var output = JSON.parse(response);
$("#block1").html(output.block1value);
$("#block2").html(output.block2value);
.....
}
block1value и block2value вставлены в качестве примера.
На деле, если запрос вернёт, например:
Array(
'name' => 'Полина',
'surname' => 'Петрова',
'id' => 1
)
То код будет примерно таким:
success: function(response) {
var output = JSON.parse(response);
$("#username").html(output.name + " " + output.surname);
$("#userid").html(output.id);
}
То есть в блок с id="username" вставится значение Полина Петрова, а в блок с id="userid" вставится 1.