关于通过AJAX从DB表获取数据,我遇到了一个奇怪的问题。
我的结果是让DB的员工进入下拉列表,但我还没能让它发挥作用。这是我的代码,我到目前为止所做的工作和当前的结果。
我已在WP中注册了操作和功能:
add_action(\'wp_ajax_get_users_dropdown\', array( $this, \'get_users_dropdown\'));
add_action(\'wp_ajax_nopriv_get_users_dropdown\', array( $this, \'get_users_dropdown\'));
我创建了PHP代码,从自定义DB表中检索员工:
public function get_users_dropdown()
{
$mydb = new wpdb(\'*****\',\'*****\',\'******\',\'*****\'); //External DB Auth
$data = $mydb->get_results("SELECT id, name FROM employee WHERE email IS NOT NULL");
echo wp_json_encode($data);
die();
}
然后,我创建了JS函数来调用PHP代码,该代码在$(文档)中被调用。就绪():
function populate_users_dropdown()
{
$.ajax({
type: "POST",
url : MyAjax.ajaxurl, // Including ajax file
data: {
action: \'get_users_dropdown\',
security: MyAjax.security
},
success: function(response) { // Show returned data using the function.
//console.log("> response: ", response );
// send data to function
display_users_dropdown(response);
},
error: function() {
// console.log("FAILED...");
}
});
}
从这里,我将AJAX调用的成功响应传递给一个函数,以处理输出的数据。
function display_users_dropdown(responseData)
{
console.log ( "++ display_users_dropdown - ", responseData.length, responseData[0].id, responseData[0].name, responseData );
}
控制台的输出为:
++ display_users_dropdown: 1309 undefined undefined
[{"id":"4","name":"John Game"},
{"id":"5","name":"Cyan Bergan"},
{"id":"7","name":"Stephen Rogers"},
...]
但我在控制台中得到的是什么。日志不正确,如果我记录;响应数据“;数组中只有36个条目,但如果我使用上述内容,id和名称未定义,长度为1309,而不是36(DB table只有47个条目),数组显示良好。
我不知道为什么我要这样做,我想第二个选择。