阿贾克斯在WordPress没有调用PHP函数(ajax in wordpress not call

2019-08-08 20:19发布

不知道是否有人能帮助; 我试图通过实现jQuery的一些Ajax到在WordPress模板的形式。

jQuery的工作,而我可以登录的研制成功一台消息:一节,但数据为0,当它应该调用PHP函数(在同一页上的那一刻,我可以直接调用这个)

所以我想jQuery是工作,管理员的Ajax被调用,它只是在PHP函数不会被调用。 任何想法我可能做错了什么? 我不完全理解挂钩,所以也许这是一个问题 - 我需要挂接在什么地方?

jQuery的(域将取代评论)

<script type="text/javascript">
    jQuery(function ($) {
        $( "#movies" ).autocomplete({
                minLength:2,
                delay:500,
                source: function( request, response ) {
                    $.ajax({
                        type: 'POST',
                        url: "http://<!--domain here -->/wp-admin/admin-ajax.php",
                        dataType: 'json',
                        data: {
                            action: 'getMoviesForCode',
                            searchString: $("#movies").val()
                        },
                        success: function( data ) {
                            response(data);
                            console.log('jjj'+data);
                        }
                    });
                }           
        });
    });
    </script> 

PHP函数(同一页)

<?php

    function getMoviesForCode(){
echo "
        <script type=\"text/javascript\">
        alert(\"hh\");
        </script>
    ";
   $searchString = $_POST['searchString'];
   $results = va_getMoviesForCode($searchString);  
  $results = json_encode($results);
  die($results);
}
 ?>

谢谢,

Answer 1:

你这样做是错的。 你的PHP功能应该是在你的主题functions.php文件。

然后,你应该勾功能wp_ajax_[your_action]wp_ajax_nopriv_[your_action]

应该是你的什么实例functions.php

function getMoviesForCode(){
echo "
        <script type=\"text/javascript\">
        alert(\"hh\");
        </script>
    ";
   $searchString = $_POST['searchString'];
   $results = va_getMoviesForCode($searchString);  
  $results = json_encode($results);
  die($results);
}
add_action('wp_ajax_getMoviesForCode', 'getMoviesForCode');
add_action('wp_ajax_nopriv_getMoviesForCode', 'getMoviesForCode');


文章来源: ajax in wordpress not calling php function