如何在jQuery对话框表中正确显示从PHP接收的数据

时间:2019-02-05 11:49:22

标签: javascript php jquery ajax

有一个带有表的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 :(得分:0)

谢谢大家的提示。对我有用的解决方案是使用结果而不是数据。

请参阅附件代码:

     $.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

感谢所有人。