簡體   English   中英

dataTable:將額外的數據傳遞到php服務器端腳本

[英]dataTable: passing extra data to php server-side script

我需要更改sql語句中的“ where-clause”,該語句用於通過更改myInput的值並將其傳遞到服務器端來從數據庫中獲取數據並在dataTables中顯示它。 我有以下代碼:

<input id=myInput value="london">

<script>
$(document).ready(function(){
$('#example').dataTable({
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url": "server_processing.php",
        "data": function ( d ) {
            d.myInput = $('#myInput').val();
        }
    }
    });
} );
</script>

服務器端具有以下代碼:

<?php
//...HERE I have defined these: $sql_details, $table, $primaryKey, $columns 

$where="`office`='$_POST['myInput']'";

require( 'ssp.class.php' );
echo    json_encode(SSP::simple($_GET,$sql_details,$table,$primaryKey,$columns,$where)); 

我要去哪里錯了? 我已經根據許多示例嘗試過此方法,並在互聯網上發布,但最終得到的結果是相同的。

您的PHP腳本存在一些問題。

  1. 您在$_POST['myInput']使用帶引號的鍵,但不使用大括號語法。
  2. 您沒有在逃脫$_POST['myInput'] ,這會引發SQL注入攻擊。
  3. SSP::simple不接受包含WHERE子句的參數,您需要改用SSP::complex

更正后的代碼如下所示:

<?php
//...HERE I have defined these: $sql_details, $table, $primaryKey, $columns 

require( 'ssp.class.php' );

$conn = SSP::db($sql_details);

$where="office=".$conn->quote($_POST['myInput']);

echo json_encode(SSP::complex($_GET,$conn,$table,$primaryKey,$columns,$where));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM