[英]How to display received data from php properly in jquery dialog table
There is a jquery dialog with a table where I would like to add some rows upon the information received from php script (potrawyINFOEngine.php).有一个带有表格的 jquery 对话框,我想在从 php 脚本 (potrawyINFOEngine.php) 收到的信息上添加一些行。 It looks that scripts sends the data correctly but I cannot upload it into the table, I get 'undefined' messages loaded into the table instead.
看起来脚本正确发送了数据,但我无法将其上传到表中,而是将“未定义”消息加载到表中。 Messages from a browsers console looks OK to me showing that the data has been send back from php script.
来自浏览器控制台的消息对我来说看起来没问题,表明数据已从 php 脚本发回。 Can you please help me with this?
你能帮我解决这个问题吗? Please look at the code attached:
请看附上的代码:
$("#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();
}
}
});
});
UPDATE: Please see the php script:更新:请参阅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);
}
?>
Please see attached screen:请参阅附加屏幕:
Thank you all for the hints.谢谢大家的提示。 The solution that worked for me was using result instead of data.
对我有用的解决方案是使用结果而不是数据。
Please see attached code:请看附件代码:
$.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);
});
Now the table looks much better.现在桌子看起来好多了。
Thanks to all.谢谢大家。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.