Сообщение (массив) php до ajax с [echo json_encode '] не показывает данные - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь отправить массив данных от PHP до ajax. Я использую echo json_encode, чтобы сделать это. Когда я делаю это, я пытаюсь "console.log (data)", чтобы увидеть данные ответа, но они ничего не показывают. Как я могу получить его для отображения данных? Я действительно не знаю, что мне здесь не хватает. У меня есть этот скрипт:

var scard = $('#cardid').val();
$.ajax({
    type: 'GET',
    url: 'cardapi.php?scard=' + scard,
    success: function (data) {
        console.log($.parseJSON(data));
        console.log(data);
    }
});

А вот мой код для cardapi. php

if(isset($_GET["scard"])){
    $scard = $_GET["scard"];
    $data = array();

    $sql = "SELECT * FROM training_record WHERE cardref_no='$scard'";
    $q = sqlsrv_query($conn, $sql);

    while($rw = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC)){
        array_push($data,[
            "employee_no" => $rw["employee_no"],
            "dept_id" => $rw["dept_id"],
            "name_th" => $rw["name_th"],
            "surname_th" => $rw["surname_th"],
            "signed_status" => 1,
        ]);

    }

    echo json_encode($data);
}

Поэтому я пытаюсь следовать этому echo json_encode () не работает через ajax звоните

Это пока ничего не показывает. Пожалуйста, скажи мне почему?

Спасибо.

1 Ответ

0 голосов
/ 09 марта 2020

Вы можете попробовать следующее:

  • Всегда проверять результат выполнения sqlsrv_query().
  • Всегда пытаться использовать параметризованные операторы. Функция sqlsrv_query() выполняет как подготовку операторов, так и их выполнение, и может использоваться для выполнения параметризованных запросов.
  • Проверьте результат вызова json_encode().
  • Исправьте ошибки ввода (например, "signed_status" => 1, должно быть "signed_status" => 1).

Пример сценария , основываясь на вашем коде:

<?php
if (isset($_GET["scard"])) {
    $scard = $_GET["scard"];
    $data = array();

    $sql = "SELECT * FROM training_record WHERE cardref_no = ?";
    $params = array($scard);
    $q = sqlsrv_query($conn, $sql, $params);
    if ($q === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   

    while ($rw = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC)) {
        $data[] = array(
            "employee_no" => $rw["employee_no"],
            "dept_id" => $rw["dept_id"],
            "name_th" => $rw["name_th"],
            "surname_th" => $rw["surname_th"],
            "signed_status" => 1
        );
    }

    $json = json_encode($data);
    if ($json === false) {
        echo json_last_error_msg();
        exit;
    }   

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