Как вернуть новую переменную из 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 шт):

Автор решения: Dmitry

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.

→ Ссылка