Я делаю вывод с помощью json_encode для отправки в javascript с помощью этого кода.

<?php

    include "Connection.php";

    $syntax_query = "select * from product";

    $thisExecuter = mysqli_query($conn, $syntax_query);

    $result = array();

    while($row = mysqli_fetch_assoc($thisExecuter)){
        
        array_push(
            $result,
            array(
                "id"       => $row["product_id"],
                "name"        => $row["product_name"]
            )
        );
    }

    echo json_encode($result);

    ?>

Так что вывод будет таким,

[{"id": "121353568", "name": "Baju Casual - Черный"}, {"id": "556903232", "name": "Tas LV - Red"}, {"id": "795953280 "," name ":" Меч - Дерево "}, {" id ":" 834032960 "," name ":" Самокат - Железная пластина "}]

И код javascript, как это

function showHint() {
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.onload = function() {
        var obj = this.responseText;
        
        document.getElementById("txtHint").innerHTML = obj.id;
    }
  xmlhttp.open("GET", "Download.php");
  xmlhttp.send();
}

Поэтому obj.id не работает, вывод не определен.

0
Andi Firdaus 18 Сен 2021 в 05:33

3 ответа

Лучший ответ

Я использую вызовы ajax, когда хочу вызвать файл Php и получить ответ от того же, что и ниже, чтобы попробовать, как я показал. Перед переходом с Ajax вам необходимо, чтобы jquery был импортирован в вызывающий файл.


Если JQuery импортирован, игнорируйте шаги


Вот шаги,

  1. Перейдите по ссылке https://code.jquery.com/jquery-3.6. 0.min.js скопировать весь контент (используйте ctl + A, чтобы выбрать весь контент, и ctl + C, чтобы скопировать)
  2. Откройте новый файл в папке текущего проекта и вставьте скопированный контент (используйте ctl + V для вставки), сохраните его как jquery-3.6.0.min.js.
  3. Импортируйте файл js в файл HTML в теге скрипта, как показано '

Теперь это пример ajax для вызова файла PHP и получения ответа.

function showHint() {
//since you have used GET method I have used here GET but You can use POST also here 
 $.ajax({
    url: 'Download.php',
    type: 'get',
//if any value you want to pass then uncomment below line
//    data: {'name_to_pass':'value'}, 
//the variable can be accessed in the php file by 'name to pass' under $_GET['name_to_pass'] or $_POST['name_to_pass'] based on type
    success: function(res)
    {
      //  open DevTool console to see results
      console.log(JSON.parse(res));
    }
    });
}
0
Rohan Jadhav 18 Сен 2021 в 03:36

Возможно, вам понадобится JSON.parse в ответе, например JSON.parse(this.responseText).

А также я вижу, что результатом является массив, поэтому вам нужно будет выполнить итерацию obj

obj.forEach(item => { 
  document.getElement("txtHint").innerHTML = item.id;
});
        
0
Yeison Cruz 18 Сен 2021 в 02:52

Вы должны определить тип ответа как json

header('Content-Type: application/json; charset=utf-8');

echo json_encode($result);
0
Thang Duc 18 Сен 2021 в 03:46