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

我一直试图从我的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中获取datatables jQuery插件的json数据 - php

我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…

代码未在服务器目录php中创建文件 - php

我正在尝试使用以下代码将新文件写入服务器error_reporting(E_ALL); ini_set('display_errors', 1); if($_SERVER['REQUEST_METHOD'] == "POST") { $html = $_POST['html'];…

在xpath中选择多个条件 - php

我正在尝试使用来自高尔夫比赛的xml提要,以显示每个高尔夫球手在高尔夫球场上的位置。目前,我想展示符合两个条件的所有高尔夫球手(排在前25名,以及所有加拿大高尔夫球手)。这是xml提要的示例。<GolfDataFeed Type="Leaderboards" Timestamp="3/21/2012 9:18:09 PM&…

无法使用Uploadify脚本上传文件 - php

我正在使用Uploadify插件上传文件。尽管这可能是一个非常基本的问题,但我无法理解和实现,无法正常工作以上传文件。我想使用uploadify实现以下目标当用户选择文件时,我希望使用PHP将其直接上传到目标路径。现在我正在使用以下代码。<html> <head> <link rel="stylesheet"…

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…