0

我真的很挣扎。我已经改变了这个代码十几次。撞墙。希望你能帮忙。谢谢。

尝试取回对已从数据库填写的预先创建的表的请求,然后在收到后将该 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 抓取的文件。

功能 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);
    }

}

提前感谢您的任何帮助。

4

1 回答 1

1

代替

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

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

wp_send_json_success() 函数返回一个带有两个键的 array()。一种名为“成功”,一种名为“数据”。你想要数据,因为成功应该是真的,假设它是成功的。

于 2020-10-28T01:19:09.260 回答