интересно, может ли кто-нибудь помочь; Я пытаюсь реализовать некоторые ajax через jquery в форме в шаблоне WordPress.
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); } ?>
Благодаря,
Ты делаешь это неправильно. Функция 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');