我想在wordpress中使用ajax。我该怎么做?我在这里附上了我的代码。但这不适合我。 这是我的wordpress动作和钩子。
function ajax_enqueuescripts() {
wp_enqueue_script('ajaxloadpost', get_template_directory_uri().'/js/my-ajax.js', array('jquery'));
wp_localize_script( 'ajaxloadpost', 'ajax_postajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}
add_action('wp_enqueue_scripts', ajax_enqueuescripts);
add_action('wp_ajax_nopriv_ajax_ajaxhandler', 'my_action_callback' );
add_action('wp_ajax_ajax_ajaxhandler', 'my_action_callback' );
function my_action_callback(){
//echo "Df";print_r($_POST);die;
}
这里是我的js代码
jQuery(document).ready(function(){
jQuery('#event-form').submit( function () {
var email = jQuery('#event_name').val();
jQuery.ajax({
type: 'POST',
url: ajax_postajax.ajaxurl,
data: {
action: 'ajax_ajaxhandler',
email : email
},
success: function() {
alert(email);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Fd");
}
});
return false;
});
});
答案 0 :(得分:0)
你在成功ajax函数中提醒的值必须来自你的php函数,所以你会有这样的东西:
<强> PHP 强>
function my_action_callback(){
echo $_POST['email']; die();
}
<强>的Javascript 强>
jQuery.ajax({
type: 'POST',
url: ajax_postajax.ajaxurl,
data: {
action: 'ajax_ajaxhandler',
email : email
},
success: function(data) {
alert(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Fd");
}
});
在你的情况下,javascript中的数据将等于你在php函数中回显的任何内容。
您可以通过编码数组将json对象发送到javascript,在这种情况下您可以使用
<强> PHP 强>
function my_action_callback(){
echo json_encode('email' => $_POST['email']));
die();
}
的Javascript
jQuery.ajax({
type: 'POST',
url: ajax_postajax.ajaxurl,
data: {
action: 'ajax_ajaxhandler',
email : email
},
success: function(data) {
alert(data.email);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Fd");
}
});
我只给出了代码中需要替换的地方的示例,其余的似乎没问题。