如何使用Ajax从SQL Jquery for DataTables获取数据 - php

这是我从DataTables Child Rows获得的代码

$(document).ready(function() {
    var table = $('#example').DataTable( {
        "ajax": "../ajax/data/objects.txt", //here
        "columns": [
            {
                "className":      'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            }, //and here to fetch the data below
            { "data": "name" }, 
            { "data": "position" }, 
            { "data": "office" },
            { "data": "salary" }
        ],
        "order": [[1, 'asc']]
    } );

我想使用ajax从SQL查询中获取数据。这是我的SQL查询:

$tsql = 
"SELECT *
FROM [dbo].[ITEM_MASTER] A
INNER JOIN
[dbo].[STOCK] B
ON
B.ItemId = A.ItemId
";
$result = sqlsrv_query($conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if (!$result) {
 die("Query to show fields from table failed");
}

while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];
 }

在ajax部分,我只是调用变量的名称,例如$ItmId或在while循环中声明的名称。
可能吗?如果是这样,怎么办?由于我对AJAX不了解

更新

数据已推送到第二个参数,并且未显示ItmId?而且,无论我是否更改$data : ItmName,它都只会基于数组显示并显示其他内容?

$(document).ready(function() {
    var table = $('#table').DataTable( {
        "ajax": {
            "url": "table_data.php",
            "type": "POST"
            },
        "columns": [
            {
                "class":          'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            },
            { "$data": "ItmId"  },
            { "$data": "ItmName" },
            { "$data": "ItmGroup"},
            { "$data": "ItmClass"}
    ],
        "order": [[1, 'asc']]
    } );

参考方案

首先,您需要更改此行:

"ajax": "../ajax/data/objects.txt", //here

指向将运行sql查询以提取数据的实际文件:即像这样:

"ajax": {"url": "path/to/phpfile.php", "type": "POST"}

您需要像这样使您的while循环:

$data = array();
while($row=sqlsrv_fetch_array($result))
{
    $ItmId = $row['ItemId'];
    $ItmName = $row['ItemName'];
    $ItmType = $row['ItemType'];
    $ItmGroup = $row['ItemGroup'];
    $ItmClass = $row['ItemClass'];
    $ItmSerialNum = $row['ItemSerialNum'];
    $ItmUOM = $row['ItemUOM'];
    $StkQty = $row['StockQuantity'];
    $StkId = $row['StockId'];

    $data['data'][] = array($ItmId, $ItmName, $ItmType,....etc);
 }
 echo json_encode($data);

您应该注意,您需要在实际表(html)中的确切列数。
另外,您的json应该如下所示:

data:
    array(
        ItmId,
        ItmName,
        ..etc
    ),
    array(
        ItmId,
        ItmName,
        ..etc
    ),

本质上有一个行数组。

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery-找不到Ajax网址 - php

好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…

jQuery ajax无法正常工作 - php

我制作了一个测试jQuery ajax脚本,并在提交时将其附加到表单上,但是尽管我在函数末尾添加了return false,但页面在提交时仍保持刷新状态,并且也没有得到任何响应。表单如下所示:<form id="LogInForm" onsubmit="return LogIn();"> <input…

jQuery Ajax PHP重定向到另一个页面 - php

JavaScript文件:$.ajax({ type: "POST", url: "ajax.php", data: dataString, success: function(r) { $("#div").html(r); } }); 我想在成功的情况下将页面重定向到new.php,所以在我使用a…

jQuery ajax()返回json对象,但未正确警告 - php

为什么无法使用data [0] .id返回ID? $(document).ready(function(){ $.ajax({ type: 'POST', dataType: "json", url: '<?php echo matry::base_to('tests/map_it'…