gpt4 book ai didi

php - 将 jQuery ajax 中的 json 数据作为新行插入到表中

转载 作者:行者123 更新时间:2023-12-01 08:18:04 24 4
gpt4 key购买 nike

我一直在尝试从 ajax 查询添加数据,该查询返回以以下模式创建的 json 数据: $lastedited = $_GET['laSTLoad'];

$count = 1;
$JsonArray = Array();


while ($count <= 4) { // luupataan x määrä ellei vastauksia tule.

$result = mysql_query("SELECT RFQs.DateAdded as DateAdded,
Customers.Name as customer,
RFQs.ID as RFQID,
Suppliers.Name as supplier,
Ships.Name as ship,
RFQs.CustomerRef as CustomerRef,
Contacts.FirstName as contactF,
Contacts.LastName as contactL,
Contacts.Email as contactE,
Users.tunnus as handler,
RFQStatus.Name as status,
RFQs.Description
FROM RFQs
LEFT JOIN Ships ON RFQs.ShipID=Ships.ID
LEFT JOIN Contacts ON RFQs.ContactID=Contacts.ID
LEFT JOIN Customers ON RFQs.CustomerID=Customers.idCustomers
LEFT JOIN Users ON RFQs.PriJobHandler=Users.id
LEFT JOIN Suppliers ON RFQs.SupplierID=Suppliers.ID
LEFT JOIN RFQStatus ON RFQs.StatusID=RFQStatus.ID
WHERE RFQs.LastEdited > '$lastedited'
") or die(mysql_error());

if (mysql_num_rows($result) == 0) {
$count++;
sleep(5); // ei uusia rivejä, nukutaan 5 sekuntia ja yritetään uudelleen.
}else {
// käy rivit läpi ja pistää arrayyn
for ($x = 0, $numrows = mysql_num_rows($result); $x < $numrows; $x++) {
$row = mysql_fetch_assoc($result);

array_push($JsonArray, array("rivi" => array("ID" => $row["RFQID"],
"DateAdded" => $row["DateAdded"],
"Supplier" => $row["supplier"],
"Customer" => $row["customer"],
"Ship" => $row["ship"],
"CustomerRef" => $row["CustomerRef"],
"Contact" => $row["contactF"]." ".$row["ContactL"],
"Description" => $row["Description"],
"PIC" => $row["handler"],
"Status" => $row["status"])));
}
$count = 6;
}

}
if ($count == 5) {
echo "NO RESULTS!!";
}
else if ($count == 6) {
//echo JSON to page
echo json_encode($JsonArray);
}

我的 jQuery 是这样的:

<script type="text/javascript" charset="utf-8">

function waitForMsg(lastload){
if (lastload==null){
lastload = { "lastload": "<?php echo $lastload; ?>" };
}
$.ajax({
type: "GET",
url: "GetUpdates.php",
datatype: "json",
data: lastload,
async: true, /* If set to non-async, browser shows page as "Loading.."*/
cache: false,
timeout:50000, /* Timeout in ms */

success: function(data){ /* kun tulokset saadaan niin suoritetaan.. */
if (data=="NO RESULTS!!") {
setTimeout(
'waitForMsg()',
1000
);
} else {
displayrow(data.rivi);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown){
addmsg("error", textStatus + " (" + errorThrown + ")");
setTimeout(
'waitForMsg()', /* Try again after.. */
"15000"); /* milliseconds (15seconds) */
},
});
};

$(document).ready(function(){
waitForMsg(); /* Start the inital request */
});

function displayrow(item)
{
var tblRow =
'<td id="showbutton-'+item.ID+'"><a href="#" onclick="hideShow(rowID'+item.ID+'">+</a></td>'
+'<td id="DateAdded-'+item.ID+'">'+item.DateAdded+'</td>'
+'<td id="Supplier-'+item.ID+'">'+item.Supplier+'</td>'
+'<td id="Customer-'+item.ID+'">'+item.Customer+'</td>'
+'<td id="Ship-'+item.ID+'">'+item.Ship+'</td>'
+'<td id="CustomerRef-'+item.ID+'">'+item.CustomerRef+'</td>'
+'<td id="Contact-'+item.ID+'">'+item.Contact+'</td>'
+'<td id="Description-'+item.ID+'">'+item.Description+'</td>'
+'<td id="PIC-'+item.ID+'">'+item.PIC+'</td>'
+'<td id="Status-'+item.ID+'">'+item.Status+'</td>'
+'<td id="Actions-'+item.ID+'">Hit F5 for actions</td>';
$('#newRFQrowInput').before(tblRow);
}
</script>

问题是我不确定应该如何处理从 ajax 查询返回的数据。目前我得到的一切都是未定义的。

有人可以帮忙吗?

谢谢!

最佳答案

在 .php 文件中进行更改以发送回信息

$JsonArray = array("ID" => $row["RFQID"],
"DateAdded" => $row["DateAdded"],
"Supplier" => $row["supplier"],
"Customer" => $row["customer"],
"Ship" => $row["ship"],
"CustomerRef" => $row["CustomerRef"],
"Contact" => $row["contactF"]." ".$row["ContactL"],
"Description" => $row["Description"],
"PIC" => $row["handler"],
"Status" => $row["status"]
);
echo json_encode(array('rivi'=>$JsonArray));

更新:

在“For 循环”中进行更改

$JsonArray = array();
for ($x = 0, $numrows = mysql_num_rows($result); $x < $numrows; $x++) {
while($row = mysql_fetch_assoc($result)){
array_push($JsonArray,array("ID" => $row["RFQID"],
"DateAdded" => $row["DateAdded"],
"Supplier" => $row["supplier"],
"Customer" => $row["customer"],
"Ship" => $row["ship"],
"CustomerRef" => $row["CustomerRef"],
"Contact" => $row["contactF"]." ".$row["ContactL"],
"Description" => $row["Description"],
"PIC" => $row["handler"],
"Status" => $row["status"]
)
);
}

}

将其替换为您的

else if ($count == 6) {
//echo JSON to page
echo json_encode(array("rivi" =>$JsonArray));
}

在 ajax 成功函数中也是如此。

success:function(data){
if(data.rivi.length){
//alert(data.rivi.length);
displayrow(data.rivi);
}
}

最后在你的displayrow函数中

function displayrow($item){
var tblRow = '<table>';
$.each($item,function(index,value){
tblRow +='<tr><td id="showbutton-'+value.ID+'"><a href="#" onclick="hideShow(rowID'+value.ID+'">+</a></td>'
+'<td id="DateAdded-'+value.ID+'">'+value.DateAdded+'</td>'
+'<td id="Supplier-'+value.ID+'">'+value.Supplier+'</td>'
+'<td id="Customer-'+value.ID+'">'+value.Customer+'</td>'
+'<td id="Ship-'+value.ID+'">'+value.Ship+'</td>'
+'<td id="CustomerRef-'+value.ID+'">'+value.CustomerRef+'</td>'
+'<td id="Contact-'+value.ID+'">'+value.Contact+'</td>'
+'<td id="Description-'+value.ID+'">'+value.Description+'</td>'
+'<td id="PIC-'+value.ID+'">'+value.PIC+'</td>'
+'<td id="Status-'+value.ID+'">'+value.Status+'</td>'
+'<td id="Actions-'+value.ID+'">Hit F5 for actions</td></tr>';
}
tblRow = '</table>';
$('#newRFQrowInput').before(tblRow);
}

关于php - 将 jQuery ajax 中的 json 数据作为新行插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com