1

誰かが助けることができるかどうか疑問に思います。私はjqueryを介してワードプレステンプレートのフォームにいくつかのajaxを実装しようとしています。

jqueryは機能しており、sucess:セクションにコンソールメッセージを記録できますが、データは0であり、php関数を呼び出す必要があります(現時点では同じページにあり、これを直接呼び出すことができます)

したがって、jqueryが機能していて、admin-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);
}
 ?>

ありがとう、

4

1 に答える 1

6

あなたはそれを間違っています。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');
于 2013-01-30T10:02:29.747 に答える