Ajax wordpress 不工作
Ajax not working wordpress
js文件:(walking_log.js)
jQuery.ajax
({
url: '<?php echo admin_url("admin-ajax.php"); ?>',
type: 'POST',
data: {
'action':'myaction'
},
success: function(data)
{
alert('Happy new year 2015 :) ');
},
error: function(data)
{
alert( 'Sorry! No Happy New year 2015 :(' );
}
});
php 文件:
// Ajax Handler.
function so_enqueue_scripts()
{
$plugin_dir_path = dirname(__FILE__);
$plugin_url = plugins_url();
wp_enqueue_script( 'ajaxHandle', $plugin_url . '/walking-log/js/walking_log.js', array('jQuery') );
wp_localize_script( 'ajaxHandle', 'myAjax', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );
add_action( 'wp_ajax_myaction', 'so_wp_ajax_function' );
add_action( 'wp_ajax_nopriv_myaction', 'so_wp_ajax_function' );
}
add_action( 'init', 'so_enqueue_scripts' );
function so_wp_ajax_function()
{
die();
}
walking_log.js
的路径是对的,我已经用浏览器打开了。我收到成功失败警报。不知道为什么。任何帮助将不胜感激。
编辑:
我在Firebug上得到这个。
"NetworkError: 404 Not Found - http://192.168.1.6/Interaction/exercise-log/%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E"
为什么会这样?
在 js 文件中,这行一定是导致错误的原因..
url: '<?php echo admin_url("admin-ajax.php"); ?>',
您正在 js 文件中调用 php 函数 admin_url。 JS 文件不会调用你的 php fn.
你的错误证实了它....编码url
%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E
已解码URL
<?php echo admin_url("admin-ajax.php"); ?>
js文件:(walking_log.js)
jQuery.ajax
({
url: '<?php echo admin_url("admin-ajax.php"); ?>',
type: 'POST',
data: {
'action':'myaction'
},
success: function(data)
{
alert('Happy new year 2015 :) ');
},
error: function(data)
{
alert( 'Sorry! No Happy New year 2015 :(' );
}
});
php 文件:
// Ajax Handler.
function so_enqueue_scripts()
{
$plugin_dir_path = dirname(__FILE__);
$plugin_url = plugins_url();
wp_enqueue_script( 'ajaxHandle', $plugin_url . '/walking-log/js/walking_log.js', array('jQuery') );
wp_localize_script( 'ajaxHandle', 'myAjax', array( 'ajaxurl' => admin_url( 'admin_ajax.php' ) ) );
add_action( 'wp_ajax_myaction', 'so_wp_ajax_function' );
add_action( 'wp_ajax_nopriv_myaction', 'so_wp_ajax_function' );
}
add_action( 'init', 'so_enqueue_scripts' );
function so_wp_ajax_function()
{
die();
}
walking_log.js
的路径是对的,我已经用浏览器打开了。我收到成功失败警报。不知道为什么。任何帮助将不胜感激。
编辑: 我在Firebug上得到这个。
"NetworkError: 404 Not Found - http://192.168.1.6/Interaction/exercise-log/%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E"
为什么会这样?
在 js 文件中,这行一定是导致错误的原因..
url: '<?php echo admin_url("admin-ajax.php"); ?>',
您正在 js 文件中调用 php 函数 admin_url。 JS 文件不会调用你的 php fn.
你的错误证实了它....编码url
%3C?php%20echo%20admin_url(%22admin-ajax.php%22);%20?%3E
已解码URL
<?php echo admin_url("admin-ajax.php"); ?>