php - Ajax 调用在 WordPress 中无法正常工作

标签 php jquery ajax wordpress

我引用了一些网上的例子,修改了functions.php和前端模板来触发ajax调用来获取一些数据。但我很难理解数据是从请求的 url 返回的。

在functions.php的末尾,我添加了,

wp_enqueue_script('jquery');
function myFunction(){
    echo "hi";
   die();
}
add_action('wp_ajax_myFunction', 'myFunction');
add_action('wp_ajax_nopriv_myFunction', 'myFunction');

在我的自定义模板页面中,我添加了,

var datavalue = 'test data string';

  jQuery.ajax({

      url: "/wp-admin/admin-ajax.php",
      method: "GET",
      data: { 'datavar' : datavalue }

  }).success(function(data) {

      console.log("successfully run ajax request..." + data);

  }).done(function(){

      console.log("I am from done function");

  }).fail(function(){

      console.log("I am from fail function.");

  }).always(function(){

      console.log("I am from always function");

  });

});

运行后,我得到这些响应。

I am from fail function.  
I am from always function

我不明白如何从特定的url获取数据并在ajax的成功函数中显示结果。

我什至不知道这个ajax调用将如何调用function.php中定义的函数?它们有什么关系?

请解释一下。另外我想通过传递关键字来触发ajax调用来查询数据库,我该如何在wordpress中做到这一点?

最佳答案

您的 AJAX 函数应包含一个操作参数来告诉 admin-ajax 您要执行哪个函数。

  url: "/wp-admin/admin-ajax.php",
  method: "GET",
  data: {
        action : 'myFunction'
  }

(或者,如果您已做好准备,则可以将其包含在您的网址中,如下所示)

url: "/wp-admin/admin-ajax.php?action=myFunction"

此外,functions.php 中的函数应该用 PHP 编写:

function myFunction(){
    echo 'hello';
    die();
}

关于php - Ajax 调用在 WordPress 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535266/

相关文章:

PHP 和 MySQL - 加载数据本地问题

ajax 调用后 Javascript 事件不起作用

javascript - 无法从 youtube 播放列表中删除视频

php - 在 Node-Webkit 中使用 PHP

PHP+Composer : Adding files to autload_static. php加载包

php - CodeIgniter SQL 从不同表中获取数据的正确格式

javascript - 如何让图片加载到同一页面而不是新页面上

JAVASCRIPT弹出框显示

javascript - Bootstrap 3 : Show spinner + fade background whilst waiting for modal content to load

php - 如何将 javascript 变量分配给 php 变量?不提交表格