有一个带有表的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);
}
?>
请查看附件屏幕:
答案 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);
});
感谢所有人。