Как я могу передать значение массива PHP в Ajax jQuery? - PullRequest
0 голосов
/ 26 июня 2019

Я получаю значение statusText: OK, но не могу получить значения объекта PHP или массива. https://paste.fedoraproject.org/paste/1-HWWEJKvSbCYKUkoGHytA

У меня Fedora 30 с 2.4.39 HTTPd, PHP 7.6, MySQL: 10.3.12. Я использую последнюю версию jQuery. Я установил его в свой файл PHP:

header('Content-type: application/json');
$.ajax({
  url: 'get.php',
  type: 'post',
  })
  .done(function(a) {
    $("#workSpace").html(a); 
    alert(a)
    $.each(a, function( key, value ) {
      $("#workSpace").html(key + ": " + value);
    });
   })
   .fail(function(a) {
        $("#workSpace").html(a); 
   })
   .always(function(a) {
        var example = Object.keys(a)

        $.each(example, function( key, value ) {
       $("#workSpace").html(key + ": " + value);
    });
    });
});

Я ожидал, что работа с объектами или массивом, переданным PHP, будет такой.

{id:1, name: hola, description: That's an example}
{id:2, name: hello, description: That's nice}
{id:3, name: welcome, description: That's so way}

Однако я только получаю statusText: OK

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

попробуйте что-то вроде этого:

$array = array();
while ($getResults = $stmt->fetch_array())
{
    $array[] = $getResults;
}

echo json_encode($array);

и добавьте тип контента в запросе $ .ajax:

  $.ajax({
    url: 'get.php',
    type: 'post',
    dataType: "json"
  })
          .done(function (a) {

            $("#workSpace").html(a);
            alert(a)
            $.each(a, function (key, value) {
              $("#workSpace").html(key + ": " + value);
            });
          })
          .fail(function (a) {
            $("#workSpace").html(a);
          })
          .always(function (a) {
            var example = Object.keys(a)

            $.each(example, function (key, value) {
              $("#workSpace").html(key + ": " + value);
            });
          });
0 голосов
/ 26 июня 2019

у вас не будет много ответов от вашего PHP в одном запросе, попробуйте собрать все данные, полученные из вашей базы данных, в переменную.Измените ваш php-код следующим образом.

header('Content-type: application/json');
$conn = new mysqli('localhost','root','example','tasks');
$stmt = $conn->query("SELECT * FROM task")->fetch_array();
$array = array();
while ($getResults = $stmt->fetch_array())
{
    $array[] = $getResults;
}

/* free result set */
mysqli_free_result($getResults);

/* close connection */
mysqli_close($conn);

echo json_encode($getResults);

С уважением

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