1

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>  

ファイル getproducts.php に対して AJAX 呼び出しが行われます。コードは次のとおりです。

<?php
   include('config.php');
   $cname = $_POST['c_name_mfac'];

   $sql = mysql_query("SELECT * FROM items where c_name_mfac = $cname ");

?>

構文エラーは発生していませんが、出力も得られていません。

私は AJAX と JQUERY の初心者です。基本的に必要なのは、jquery Datatables にすべての製品を表示するために必要な会社名に基づいています。私はDataTablesの非表示の行の詳細の例を使用していますが、これはうまくいっているようです..誰か助けてください。

ありがとう、N.C.

4

1 に答える 1

0

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);
?>
于 2012-10-16T23:36:03.567 に答える