簡體   English   中英

如何在jquery對話框表中正確顯示從php接收的數據

[英]How to display received data from php properly in jquery dialog table

有一個帶有表格的 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);
}
?>

請參閱附加屏幕:

控制台日志

謝謝大家的提示。 對我有用的解決方案是使用結果而不是數據。

請看附件代碼:

     $.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);
  });

現在桌子看起來好多了。 屏幕1

謝謝大家。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM