问题描述
我真的为此感到挣扎。我已将此代码更改了十二次。打墙。希望能对您有所帮助。谢谢。
尝试取回已创建的表格的请求,该表格已从数据库中填写,然后一旦收到,就将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);
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()。一种叫做“成功”,另一种叫做“数据”。您需要数据,因为假设成功,成功就应该是真实的。