WP Ajax DB issues

时间:2021-02-15 作者:Jimmy

关于通过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个条目),数组显示良好。

我不知道为什么我要这样做,我想第二个选择。

1 个回复
SO网友:Jimmy

我找到了解决办法。数据=JSON.parse(数据);需要在JS端接收数据。

相关推荐

更改函数后无法访问站点。php

我正在编辑函数。当我的整个网站宕机时,我的网站中出现了php。我甚至无法进入仪表板或登录。任何试图访问该网站的行为都会导致以下消息:"E;此网站出现严重错误。请查看您的站点管理电子邮件收件箱以了解说明"E;我没有收到任何电子邮件。我上网查看了一下,所有的解决方案都说去仪表板做点什么,但我无法访问仪表板。一种解决方案是使用FileZilla访问该网站,但进行了更多研究,似乎之前必须在仪表板中设置该选项,才能获得访问该网站的用户名,这是我无法做到的。我没有访问该网站主机的权限,因为我不是主机所