通过数据表ajaxsource发送变量

sending a variable through a datatable ajaxsource

本文关键字:变量 ajaxsource 数据表      更新时间:2023-09-26

Javascript,我正在尝试使用fnserverparams,但我可能做得不对。

$(document).ready(function () {
$('#dblist').on('change', function () {
    var selected = $("select option:selected").text();
    tablefill(selected);
});
$('#search').click(function () {
    var selected = $("select option:selected").text();
    tablefill(selected);
});
function tablefill(selected) {
    $('#table_id').dataTable({
        "sAjaxSource": '/php/connect/searchtablequery.php',
        "bProcessing": true,
        //"bServerSide": true,
        "bDestroy": true,
        "sAjaxDataProp": "",
        "fnServerParams": function (aoData) {
            aoData.push({ "db": selected });
        },
        "aoColumns": [
            { "mData": "calldate" },
            { "mData": "clid" },
            { "mData": "src" },
            { "mData": "dst" },
            { "mData": "dcontext"}],
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "sDom": '<"H"Tfr>t<"F"ip>',
        "oTableTools": {
            "sSwfPath": "/DataTables/extras/TableTools/media/swf/copy_csv_xls_pdf.swf",
            "aButtons": [
                "copy", "csv", "xls", "pdf",
                {
                    "sExtends": "collection",
                    "sButtonText": "Save",
                    "aButtons": ["csv", "xls", "pdf"]
                }
            ]
        }
    });
};

});

php我用来获取变量

<?php  
session_start();
include '../connect/adminconnect.php'; 
$myuserdb   = $_POST['db'];
$dbidsql = $dbh->prepare("SELECT * FROM DBList WHERE DBNick= :db"); 
$dbidsql->execute(array(':db' => $myuserdb));;  
$userdbid = $dbidsql->fetchAll();
$dbip   = $userdbid['DBIP'];
$dbuser = $userdbid['DBUser'];
$dbpass = $userdbid['DBPass'];
$dbname = $userdbid['DBName'];
$remotetblname="crd"; // Table name 
// Connect to server and select databse.
try {
    $remotedbh = new PDO("mysql:host=$dbip;dbname=$dbname", "$dbuser", "$dbpass");
}
catch(PDOException $e) {
    echo $e->getMessage();
}
$query = 'SELECT * FROM cdr'; 
$sql = $remotedbh->prepare($query);  
$sql->execute(); 
$dblist = $sql->fetchAll(PDO::FETCH_ASSOC); 
if($sql->rowCount() > 0){ 
    header('Content-type: application/json');
    echo json_encode($dblist); 
} 
else {
    echo 0; 
}  

?>

我有json和所有的东西,我只希望用户能够从下拉列表中选择要查询的数据库,这是有效的,但我不知道如何传递变量,因为所有的dbip和所有的都是空的。

据我所知,数据表检索数据的默认方法是GET,但您在$_POST变量中查找db

此外,请确保使用1.8.2或更新版本的数据表,因为该版本引入了fnServerParams,请参阅http://www.datatables.net/forums/discussion/6600/question-about-fnserverparams