Данные, закодированные в json, не попадают в Ajax. Проверьте мой код - PullRequest
0 голосов
/ 14 мая 2019

Я хочу получить данные из базы данных и отобразить их в таблице HTML, но URL-адрес ajax не вызывает страницу PHP и не получает данные об успехе.

Ajax Call: I did not get JSON encoded data on success.

$.ajax({
            url : 'FETCH.PHP',
            dataType:'json',
            contentType: "application/json",
            success: function (data) {
               var data = JSON.stringify(data);

                var html = "";
            for(var a = 0; a < data.length; a++) {
                var firstName = data[a].firstname;
                var email = data[a].email;
                alert(email);

                html += "<tr>";
                    html += "<td>" + firstName + "</td>";
                    html += "<td>" + email + "</td>";
                html += "</tr>";
               document.getElementById("data").innerHTML += html;
              }
            },
            error: function(xhr, textStatus, error){
                alert(xhr.statusText);
                alert(textStatus);
                alert(error);
              }

     });

Это моя кодовая страница PHP, которую я хочу переместить, используя вызов ajax. ==> Страница FETCH.PHP

<?php
print_r("Hello");
include_once('database/db.php');

$getUsers = $connect->prepare("SELECT * FROM registration ORDER BY id ASC");
$getUsers->execute();
//$users = $getUsers->fetchAll();

$users = $getUsers->fetchAll(PDO::FETCH_ASSOC);

$items = array();
foreach($users as $u) {
    //print_r($u);
 $items[] = $u;
}
var_dump(json_encode($items);
exit(); 
?>

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Удалите две вещи из вызова ajax и запустите мой код.dataType: 'json', contentType: "application / json",

==> исправленный код

$.ajax({
        url : 'check.php',
        success: function (data) {
        data = $.parseJSON(data);
           }
        )};

==> я преобразовал строку в кодировке json в массив, используя $ .parseJSON.

0 голосов
/ 14 мая 2019

Избавьтесь от всего вывода, кроме повторения JSON.

Также нет необходимости в цикле foreach.$items это просто копия $users.

<?php
include_once('database/db.php');

$getUsers = $connect->prepare("SELECT * FROM registration ORDER BY id ASC");
$getUsers->execute();

$users = $getUsers->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($users);
exit(); 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...