如何使用ajax从mysql查询向jquery表添加行?

时间:2016-01-26 11:52:34

标签: php jquery mysql ajax datatables

我需要从AJAX中将行插入到jQuery DataTable中。在AJAX中,当我对mySql数据库进行查询时,我调用了一个PHP文件,但是我只在行中显示了一个字符。这是因为返回的格式不正确,但我无法解析正确的格式。

$query = "..myquery..";
if ($row = mysql_fetch_array($sql)) {
    do {
        $arr []= $row['name'];
    } while ($row = mysql_fetch_array($sql));
    echo json_encode($arr); // Here I tried return array without json_encode and a lot of things...
}

我知道使用.DataTable().row.add()添加行的格式如下所示,但我没有获得所需的格式。

[["Element software"], ["Software dist"],["Global envir"], ["Software"], ["Software list"]] 

如何在echo中获取此格式才能返回? 谢谢!

3 个答案:

答案 0 :(得分:0)

它是数组数组,因此您需要将数组推送到$arr,而不是字符串:

$query = "..myquery..";
$arr = []; // init an empty array
// no need to do if() and do{}while() inside. You can just while(){} it
while($row = mysql_fetch_array($sql)){ 
    $arr[]= [$row['name']]; // <== these square brackets do the trick  
}
echo json_encode($arr); // still need to json_encode

答案 1 :(得分:0)

do{
    $arr[]= array($row['name']);
} while ($row = mysql_fetch_array($sql));
echo json_encode($arr);

注意

$arr[]= array($row['name']);

而不是

$arr []= $row['name'];

答案 2 :(得分:0)

一:两个运行mysql_fetch_array($ sql),因为php返回null;

二:为插入表编码ajax。

 $.ajax({
                dataType:"json",
                url:"recive.php",
                type:"POST",
                data:{id:id},
                success: function(res){
                     for(var j=0;j<res.length;j++)
                        {
                             $("#tabel").append("<table ><tr><td style='width:100%;' > "+res[j].id+"</td></tr></table>");
                        }    
                }