如何在单击事件中追加数据来自数据表


How to append the data From dataTable in click event

我使用了以下脚本,数据没有加载到数据表,我收到错误 点击这里显示错误图像这是我的jquery代码

Table = $("#example").DataTable({
            data:[],
            columns: [
            { "data": "Course" },
            { "data": "Batch" },
            { "data": "Admission No" },
            { "data": "Rollno" },
            { "data": "Student Name" },
            { "data": "Email" }
            ],
            rowCallback: function (row, data) {},
            filter: false,
            info: false,
            ordering: false,
            processing: true,
            retrieve: true
            });
        $('.view_search_btn').click(function(){
            //alert("clicked");
            var search_key = $('input[name=view_stu_search]').val();
            $('.box-body').show();
             $.ajax({
                    url: "../live_search.php",
                    type: "post",
                    data: "key="+'view_student_search_key'+"&search_keyword="+search_key
                }).done(function (result) {
                    Table.clear().draw();
                    Table.rows.add(result).draw();
                }).fail(function (jqXHR, textStatus, errorThrown) { 
                      // needs to implement if it fails
                });

}(;//单击事件关闭此处 });文档关闭此处我的PHP代码是

if(!ctype_digit($_POST['search_keyword'])){
            //echo "given value is string".$_POST['search_keyword'];
            $rows = search_keyword($view_student_search_key);
            //print_r($rows);
            foreach($rows as $row)
            {
                $query = "SELECT a.stu_rollno, c.stu_course,c.stu_batch,a.admission_no,p.stu_firstname,p.stu_lastname,co.stu_email FROM current_course c, admission_details a,stu_personal_details p, stu_contact_details co WHERE a.stu_rollno = p.stu_rollno AND c.stu_rollno = co.stu_rollno AND a.stu_rollno = c.stu_rollno AND (c.stu_degree = ".$row['degree_id']." AND c.stu_course = ".$row['course_id']." AND c.stu_branch = ".$row['branch_id'].");";
                //echo "<br><br>";
                $run_query = mysqli_query($con, $query);
                while($result = mysqli_fetch_array($run_query))
                {
                    echo "
                        <tr>
                                <td>".$row['course_name']."</td>
                                <td>".$result['stu_batch']."</td>
                                <td>".$result['admission_no']."</td>
                                <td>".$result['stu_rollno']."</td>
                                <td>".$result['stu_firstname'].$result['stu_lastname']."</td>
                                <td>".$result['stu_email']."</td>
                                <td align='center'><a href='edit.php?rollno=".$result['stu_rollno']."&degree=".$row['degree_name']."&course=".$row['course_name']."&branch=".$row['branch_name']."' class='btn btn-info btn-sm btn-flat'><i class='fa fa-edit'></i> Edit</a>
                                    <button type='button' class='btn btn-danger btn-sm btn-flat' name='remove_levels' data-toggle='modal' data-target='.bs-example-modal-sm'><i class='fa fa-close'></i> Delete</button>
                                </td>
                            </tr>
                    ";
                }
            }
        }`

我的 PHP 中的以下函数

function search_keyword($view_student_search_key)
{
    $query = "SELECT d.degree_id,d.degree_name,c.course_id,c.course_name,b.branch_id,b.branch_name FROM degree d,courses c,branch b WHERE d.degree_id = c.degree_id AND b.course_id = c.course_id AND (d.degree_name like '%$view_student_search_key%' OR c.course_name like '%$view_student_search_key%' OR b.branch_name like '%$view_student_search_key%')";
    global $con;
    $run_query = mysqli_query($con, $query);
    //Declare the rows to an array
    $rows = array();
    // Insert Each row to an array
    while($row = mysqli_fetch_array($run_query))
    {
        $rows[] = $row;
    }
    // Return the array
    return $rows;
}`

在这里,您为标题添加总共 6 个td,然后为内部tr添加 7 个td。因此,每行的数据表td不匹配。

您可以做的是:

只需在数据表初始化中再添加一个td,前面加上,(逗号(:

{ "data": "Actions" }

注意:Action是编辑和其他图标列td的标题。

使用 xhr.dt 并使用 datatables load(( API 重新加载数据。xhr.dt 将在加载 AJAX 调用数据时侦听它。您可以清除和绘制,即在 xhr 回调函数中附加数据。希望有帮助。