WordPress中jQuery的问题-从数据库中检索带有预先填写的HTML数据的表的问题

问题描述

我真的为此感到挣扎。我已将此代码更改了十二次。打墙。希望能对您有所帮助。谢谢。

尝试取回已创建的表格的请求,该表格已从数据库中填写,然后一旦收到,就将HTML放到屏幕上。

jquery正在获得200-但没有数据返回。试图取回已填满数据的整个表格。我知道我很容易丢失某些东西,只是现在看不到它是什么。

这是我的jquery文件

(function($){
$(document).ready(function ($) {

    $tableuser = $(this).val();

    $('.table-header').on('click',(function() {
        var data = {
                    'action': 'admin-user-populate','tableuser': $tableuser,};
        $.post(adminuserdataonly.ajax_call,data,function (response) {
        $('#admin-table').html(response);
        })
        }))






});

})(jQuery);

这是PHP ajax抓取的文件

function admin_only_table() {

    $display_table = "<table>";
    $display_table .= "<tr>";
    $display_table .= "<th>User_ID</th>";
    $display_table .= "<th>First Name</th>";
    $display_table .= "<th>Last Name</th>";
    $display_table .= "<th>Email</th>";
    $display_table .= "<th>Subject</th>";
    $display_table .= "</tr>";


    if(current_user_can('edit_posts')){

        global $wpdb;

        $tablename = $wpdb->prefix."formuserinput";
        $rows = $wpdb->get_results("SELECT * FROM $tablename");
        foreach($rows as $row){
            $display_table .= "<td>";
            $display_table .= "<td>$row->user_id</td>";
            $display_table .= "<td>$row->first_name</td>";
            $display_table .= "<td>$row->last_name</td>";
            $display_table .= "<td>$row->email</td>";
            $display_table .= "<td>$row->subject</td>";
            $display_table .= "</td>";

        }

        $display_table .= "</table>";          
        wp_send_json_success($display_table);

    }

    else{
        $result = 4;            
        wp_send_json_success($result);
    }

}

在此先感谢您的帮助。

解决方法

替换

$('#admin-table').html(response);

使用

$('#admin-table').html(response.data);

wp_send_json_success()函数返回带有两个键的array()。一种叫做“成功”,另一种叫做“数据”。您需要数据,因为假设成功,成功就应该是真实的。