【问题标题】:Pass Parameter Value from Datatables Button to a Function将参数值从数据表按钮传递给函数
【发布时间】:2021-07-16 05:30:42
【问题描述】:

我试图将数据表中按钮的值传递给函数。但是我只是得到第一行的值。希望您能够帮助我。我只需要提醒参数,然后我会处理其余的。

这是代码

memberlist.php

<?php
header('Content-Type: application/json; Charset="UTF-8"');
$columns = array( 
// datatable column index  => database column name
    0 => 'HoId',
    1 => 'Name',
    2 => 'ClusterName',
    3 => 'MemStatus',
    4 => 'EmailId',
    5 => 'RegDate'
);
include 'database.php';
$sql = "SELECT mi.HoId, CONCAT(mi.FirstName,' ',mi.LastName) as Name,mi.Cluster,mi.MemStatus,mi.EmailId,mi.MobileNo,mi.RegDate, ci.ClusterName, ci.CHname"; 
$sql2 = " from tblmemberinfo mi LEFT JOIN clusterinfo ci on ci.id = mi.cluster";
$sql3 = $sql.$sql2;

$res = mysqli_query($conn, $sql3) or die("Error: ".mysqli_error($conn));
$dataArray = array();
while( $row = mysqli_fetch_array($res) ) {


                 $HoId = $row['HoId'];
                 $Name = $row['Name'];
                 $ClusterName = $row['ClusterName'];
                 $MemStatus = $row['MemStatus'];
                 $EmailId = $row['EmailId'];
                 $RegDate = $row['RegDate'];
                 
                $dataArray [] =  array("HoId" => $HoId,
                                        "Name" => $Name,
                                        "ClusterName" => $ClusterName,
                                        "MemStatus" => $MemStatus,
                                        "EmailId" => $EmailId,
                                        "RegDate" => $RegDate);


}
$str = mb_convert_encoding($dataArray, "UTF-8");
echo json_encode($str);

?>

action.js = 我只需要提醒参数,然后我会处理其余的。

$(document).ready(function() {

$('#memberlist').DataTable( {
    "ajax": {
            "type" : "POST",
            "url" : "includes/memberlist.php",
            "dataSrc": function ( jsondata ) {
                return jsondata;
                
            }       
            },
            
    "columns": [
            { "data": "HoId" },
            { "data": "Name" },
            { "data": "ClusterName" },
            { "data": "MemStatus" },
            { "data": "EmailId" },
            { "data": "RegDate" },
            {   data: null, 
                render: function(data, type, row) {
                    return '<button id="memberlist_but" type="button" value="'+ data.HoId +'"class="btn btn-block btn-primary">View</button> '
                    

                }},

        ],

    } );
}

【问题讨论】:

    标签: javascript php ajax datatables bootstrap-modal


    【解决方案1】:

    我想你不知道数据表的响应数据,很好。 这是一个例子。 (来自https://datatables.net/examples/data_sources/server_side.html

    {
       "draw":3,
       "recordsTotal":57,
       "recordsFiltered":57,
       "data":[
          [
             "Gloria",
             "Little",
             "Systems Administrator",
             "New York",
             "10th Apr 09",
             "$237,500"
          ],
          [
             "Haley",
             "Kennedy",
             "Senior Marketing Designer",
             "London",
             "18th Dec 12",
             "$313,500"
          ],
          
          ...
    
          [
             "Jennifer",
             "Chang",
             "Regional Director",
             "Singapore",
             "14th Nov 10",
             "$357,650"
          ]
       ]
    }
    

    如您所见,在dataSrc 回调中收到jsondata 后,数组必须在jsondata.data 中找到,并且jsondata.recordsTotaljsondata.recordsFiltered 必须从服务器初始化。

    另外,请尝试使用 Chrome 开发工具分析来自“真正工作”服务器的响应数据。

    【讨论】:

    • 在我的数据表中获取了参数。我只是想提醒它一个 javascript 函数。在开发工具中,我可以看到我需要每一行的所有参数,所以没问题。问题是我不能将它传递给 js 函数或只是提醒它,我会做剩下的事情。注意:我知道如何使用开发工具.
    • 对不起。但是,您错过了jsondata.data。响应数据 - $dataArray 只是一个数组,这就是你出错的原因。将$dataArray 封装到{..., data:$dataArray, ...}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多