如何在Wordpress中使用ajax?

时间:2014-01-15 12:16:35

标签: ajax wordpress

我想在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;
  });
});

1 个答案:

答案 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");
        }
    });

我只给出了代码中需要替换的地方的示例,其余的似乎没问题。