1

我正在尝试将存储过程中的数据加载到借助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

我提到以上所有内容是因为我在加载表格时收到以下问题,这就是为什么我说我的数据不匹配,欢迎任何想要告诉我的人。

错误

4

0 回答 0