通过使用jquery数据表进行ajax调用,从mysql表中检索数据


Retrieve data from a mysql table by making ajax call using jquery datatables

我在进行ajax调用时从mysql表中检索数据时遇到问题。我使用jquery数据表来显示数据。代码如下

var oTable;
/* Formating function for row details */
function fnFormatDetails ( nTr )
{
var aData = oTable.fnGetData( nTr );
var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
sOut += '<tr><td>'+aData[0]+'</td></tr>';
sOut += '</table>';
return sOut;
}
$(document).ready(function() {
oTable = $('#datatables').dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "../getproducts.php",
    "aData" : "POST","getproducts.php?c_name_mfac="+c_name_mfac
    "aoColumns": [
        { "sClass": "center", "bSortable": false },
        null,
        { "sClass": "center" },
    ]
} );
$('#datatables tbody tr td img').live( 'click', function () {
    var nTr = this.parentNode.parentNode;
    if ( this.src.match('details_close') )
    {
        /* This row is already open - close it */
        this.src = "../images/details_open.png";
        oTable.fnClose( nTr );
    }
    else
    {
        /* Open this row */
        this.src = "../images/details_close.png";
        oTable.fnOpen( nTr, fnFormatDetails(nTr), 'details' );
    }
} );
} );

代码的HTML部分如下:

<div>                          
<table id = "datatables" class="display">
<thead>
<tr>
    <th></th>
    <th>Company Name</th>
</tr>
<thead>
<tbody>
    <?while($row=mysql_fetch_array($result)){               
            <tr>
                <td><img src="images/details_open.png"/></td>
        <td class="center" value="c_name_mfac"><?= $row['c_name_mfac']?></td>
    </tr>
    <?}}?>
</tbody>
</table>
</div>  

AJAX调用是对文件getproducts.php进行的。代码如下所示:

<?php
   include('config.php');
   $cname = $_POST['c_name_mfac'];
   $sql = mysql_query("SELECT * FROM items where c_name_mfac = $cname ");
?>

我没有得到任何语法错误,但也没有得到输出。

我是AJAX和JQUERY的初学者。基本上,我需要的是基于一个公司名称,我需要在jquery数据表中显示它的所有产品。我正在使用DataTables隐藏行详细信息示例,但这似乎对我有效。有人能帮忙吗。

谢谢,NC

PHP文件没有返回任何值,您应该生成一些JSON输出,如下所示:

<?php
   include('config.php');
   $cname = $_POST['c_name_mfac'];
   $sql = mysql_query("SELECT * FROM items where c_name_mfac = $cname ");}
   $result = new stdObject;
   $result->aaData = array();
   while($row = mysql_fetch_assoc($sql)) {
       array_push($result->aaData, $row);
   }
   header('Cache-Control: no-cache, must-revalidate');
   header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
   header('Content-type: application/json');
   echo json_encode($result);
?>