Как правильно отобразить полученные данные из php в диалоговой таблице jquery - PullRequest
0 голосов
/ 05 февраля 2019

Есть диалоговое окно jquery с таблицей, куда я хотел бы добавить несколько строк к информации, полученной из php-скрипта (potrawyINFOEngine.php).Похоже, что сценарии отправляют данные правильно, но я не могу загрузить их в таблицу, вместо этого я получаю «неопределенные» сообщения, загруженные в таблицу.Сообщения из консоли браузера выглядят нормально для меня, показывая, что данные были отправлены обратно из php-скрипта.Можете ли вы помочь мне с этим?Пожалуйста, посмотрите на прикрепленный код:

$("#dialog-message1").hide();
$('.confirmation1').on('click', function(e) {
    e.preventDefault();
    var lnk = $(this).attr('href');
    var product_name = $(this).parents("tr").find("td").first().html();
    console.log(product_name);

    $("#dialog-message1").append("<table id='tableINFO'> </table>");
    $("#dialog-message1 table").append("<tr><th>Nazwa produktu</th><th>Waga (g)</th><th>Kalorie (Kcal)</th> <th>Białko (g)</th> <th>Tłuszcze (g)</th> i<th>Węglowodany (g)</th> </tr>");

    console.log(product_name);

         $.ajax({
            method: "POST",
            url: "potrawyINFOEngine.php",
            data: {"nazwa": product_name},
         }).done(function( data ) {
            var result = $.parseJSON(data);
            var len = data.length;
            for(var i=0; i<len; i++){
                    var T_nazwaproduktu = data[i].produkt;
                    var T_waga = data[i].waga;
                    var T_kalorie = data[i].kalorie;
                    var T_bialko = data[i].bialko;
                    var T_tluszcze = data[i].tluszcze;
                    var T_weglowodany = data[i].weglowodany;

                    var tr_str = "<tr>" +
                            "<td align='left'>" + T_nazwaproduktu + "</td>" +
                            "<td align='left'>" + T_waga + "</td>" +
                            "<td align='left'>" + T_kalorie + "</td>" +
                            "<td align='left'>" + T_bialko + "</td>" +
                            "<td align='left'>" + T_tluszcze + "</td>" +
                            "<td align='left'>" + T_weglowodany + "</td>" +
                            "</tr>";

                    $("#dialog-message1 table").append(tr_str);

            }
            console.log(result);


      });


    $("#dialog-message1").dialog({
        height: "auto",
        width: 700,
        modal: true,
        buttons: {
            Ok: function() {
                    $(this).dialog("close");
                    $( "#dialog-message1 table" ).remove();
            }
        }
    });
});

ОБНОВЛЕНИЕ: Пожалуйста, смотрите скрипт php:

<?php

include 'db_connection.php';
include 'functions.php';


$return_arr = array();

error_log("-->potrawaINFOEngine.php:"."\n", 3, "/var/www/html/jadlospis/errors.log");

if (isset($_POST['nazwa'])){

        $T_NazwaPotrawy = $_POST['nazwa'];

        $SQL = "SELECT produkt AS T_P, waga AS T_W FROM potrawydetails WHERE nazwa='".$T_NazwaPotrawy."'";
        $result = mysqli_query($conn,$SQL ) or die(mysqli_error($this->dblink));
        while($row = mysqli_fetch_array($result))
        {
                $T_Produkt=$row['T_P'];
                $T_Waga=$row['T_W'];

                $T_ProduktDetails=ProduktyDetails($T_Produkt,$T_Waga);

                $T_Kalorie=$T_ProduktDetails['kalorie'];
                $T_Bialko=$T_ProduktDetails['bialko'];
                $T_Tluszcze=$T_ProduktDetails['tluszcze'];
                $T_Weglowodany=$T_ProduktDetails['weglowodany'];

                error_log("-->".$T_Produkt.",".$T_Waga.",".$T_Kalorie."\n", 3, "/var/www/html/jadlospis/errors.log");

                $return_arr[] = array(  "produkt" => $T_Produkt,
                                        "waga" => $T_Waga,
                                        "kalorie" => $T_Kalorie,
                                        "bialko" => $T_Bialko,
                                        "tluszcze" => $T_Tluszcze,
                                        "weglowodany" => $T_Weglowodany);

        }
        mysqli_close($conn);
        echo json_encode($return_arr);
}
?>

Пожалуйста, см. Прикрепленный экран:

Console log

1 Ответ

0 голосов
/ 05 февраля 2019

Спасибо всем за подсказки.Решение, которое работало для меня, заключалось в использовании результата вместо данных.

Пожалуйста, смотрите прикрепленный код:

     $.ajax({
        method: "POST",
        url: "potrawyINFOEngine.php",
        data: {"nazwa": product_name},
     }).done(function( data ) {
        var result = $.parseJSON(data);
        var len = result.length;
        for(var i=0; i<len; i++){
                var T_nazwaproduktu = result[i].produkt;
                var T_waga = result[i].waga;
                var T_kalorie = result[i].kalorie;
                var T_bialko = result[i].bialko;
                var T_tluszcze = result[i].tluszcze;
                var T_weglowodany = result[i].weglowodany;

                var tr_str = "<tr>" +
                        "<td align='left'>" + T_nazwaproduktu + "</td>" +
                        "<td align='left'>" + T_waga + "</td>" +
                        "<td align='left'>" + T_kalorie + "</td>" +
                        "<td align='left'>" + T_bialko + "</td>" +
                        "<td align='left'>" + T_tluszcze + "</td>" +
                        "<td align='left'>" + T_weglowodany + "</td>" +
                        "</tr>";

                $("#dialog-message1 table").append(tr_str);

        }
        console.log(data);
  });

Теперь таблица выглядит намного лучше.screen1

Спасибо всем.

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