我正在尝试将存储过程中的数据加载到借助Datatables库制作的表中,但我遇到的问题是该数据没有显示在我的表中,我认为问题可能是数据是与我的存储过程或我的 JSON 不一致,我附在我的 AJAX 调用下方和 JSON 内部:
$(document).ready(function () {
var table = $('#example').dataTable( {
"ajax": {
"type": 'POST',
"url" : './data.php',
"dataType": 'JSON',
"cache": false,
"data": {
'param' : 1,
},
},
columns: [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data" : "OrdenCompra" },
{ "data" : "TipoMoneda" }
],
如前面的代码所示,我调用了一个文件data.php,我的代码如下:
数据.php
<?php
header('Content-Type: text/html; charset=utf-8');
$param = $_POST['param'];
switch($param) {
case '1': //Consulta
//$Fecha = $_POST['Fecha'];
$query = array();
include './db/conectar.php';
$sql = "{call SPTest(?)}";
$stmt = sqlsrv_query($conn, $sql);
if ( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) {
$record = array(
"VIJ.PURCHID" => utf8_encode ($row['OrdenCompra']), //Orden de compra
"F.MONEDA" => $row['Moneda'], //Moneda
);
array_push($query, $record);
}
json_encode($query);
sqlsrv_free_stmt( $stmt);
sqlsrv_close($conn);
return array(
"success"=> count($query) > 0 ? true : false,
"data"=>$query
);
break;
}
?>
同样在前面的代码中,我调用了名为SPTest的存储过程,代码如下:
SPTest.sql
ALTER PROCEDURE [dbo].[SPTest]
AS
BEGIN
SET NOCOUNT ON;
select VIJ.PURCHID as 'OrdenCompra',
F.MONEDA as 'TipoMoneda'
FROM PP_FACTURAS F
INNER JOIN DIRPARTYTABLE E ON E.DATAAREA = F.DATAAREAID
LEFT JOIN VendInvoiceJour VIJ ON VIJ.DATAAREAID = F.DATAAREAID
END
我提到以上所有内容是因为我在加载表格时收到以下问题,这就是为什么我说我的数据不匹配,欢迎任何想要告诉我的人。