Я новичок в WP и не слишком хорошо знаком с AJAX, но я пытаюсь заставить работать очень простой вызов AJAX, я думаю, что почти готов, но я не могу получить никаких результатов, чтобы вернуться из вызова AJAX , Я урезал все до костей, чтобы заставить его работать, и просто возвращаю строку «Это результаты данных AJAX» из функции PHP Ajax, но даже это, похоже, не работает. В настоящий момент я получаю тестовые оповещения…
alert('jquery step 1'); - работает нормально
alert('jquery step 2'); - работает нормально
alert('ajax result: '.response); - ** НЕ ОТОБРАЖАЕТСЯ **
alert('jquery step 3'); - работает нормально
Я создал собственный плагин и пользовательские файлы js и php следующим образом ...
********* c4l-custom-functions.php ********
<?php
/**
* Plugin Name: C4L Custom Functions Plugin
* Description: This plugin contains C4l custom functions, scripts and css styles.
* Author: C4L
* Version: 1.0
*/
function c4l_custom_script_and_style_includer() {
wp_enqueue_script( 'c4l-js', plugins_url( 'js/c4l-custom-scripts.js' , __FILE__ ) );
wp_enqueue_style( 'c4l-css', plugins_url( 'css/c4l-custom-styles.css' , __FILE__ ) );
}
add_action( 'wp_enqueue_scripts', 'c4l_custom_script_and_style_includer' );
add_action( 'wp_ajax_wps_get_time', 'wps_get_time' );
add_action( 'wp_ajax_nopriv_wps_get_time', 'wps_get_time' );
function wps_get_time() {
// $format = $_POST['format'];
echo('This is AJAX data results');
//echo date($format);
die();
}
?>
********* c4l-custom-scripts.js ********
document.addEventListener("DOMContentLoaded", function(event) {
jQuery('#pulldown1').change(function(){
alert('jquery step 1');
var timeformat = 'U';
alert('jquery step 2');
jQuery.ajax({
type: "POST",
url: "admin-ajax.php",
data: { action: 'wps_get_time', format: timeformat },
success: function ( response ) {
alert('ajax result: '.response);
}
});
alert('jquery step 3');
});
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте изменить URL-адрес функции ajax следующим образом:
ajaxurl = '<?php echo(admin_url('admin-ajax.php')); ?>';
Так и в моем проекте (явный url). В вашем jquery не должно ли alert('ajax result: '.response); быть alert('ajax result: ' + response);?
К сожалению, да изменилось на предупреждение ('ajax result:' + response); и использовал admin_url ('admin-ajax.php')); и теперь работает нормально, спасибо! :)
мой admin_url ('admin-ajax.php')) возвращается: xx.xx.xx.xx / wp-admin / admin-ajax.php, это правильно? Я ожидал увидеть относительный путь, а не явный URL?