从AJAX调用Wordpress PHP函数

时间:2014-03-17 21:28:28

标签: javascript php jquery ajax wordpress

我正在尝试从AJAX表单中检查复选框值。现在我得到了我的AJAX函数的值,但我没有成功调用PHP函数然后/将值传递给PHP。

这是AJAX函数(applicantid.js),我在这里收到正确值的警告消息:

function sendAjaxRequest(value){
jQuery.ajax({
 url: my_ajax_script.ajaxurl,
 data: ({action : 'get_my_option', value:value}),
      success: function() {
       alert(value);
      }

 });
}

以下是我已经添加到functions.php的PHP函数的代码:

function your_function_name() 
{

 wp_enqueue_script( 'myfunction', get_template_directory_uri().'/assets/js/applicantid.js', array( 'jquery' ), '1.0',true);
 wp_localize_script( 'myfunction', 'my_ajax_script', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );


}

add_action('template_redirect', 'your_function_name');

function get_my_option()
{

$value = $_POST['value'];
$applicantid = get_field('applicant id', $value);
$wp_session[$value] = $applicantid;
//print($value);

}
add_action("wp_ajax_nopriv_get_my_option", "get_my_option");
add_action("wp_ajax_get_my_option", "get_my_option");

我真的迷失在这里,不知道出了什么问题。感谢您的支持,谢谢。

1 个答案:

答案 0 :(得分:0)

非常接近,我可以发现三个问题

  1. 您的get_my_option()函数未发回任何内容。你应该这样做。

    function get_my_option()
    {
        //get applicant id (looks like this is what you want to get back?)
    
        //send json headers
        header( "Content-Type: application/json" );
    
        //print out you response as json
        echo json_encode( $applicantid );
    
        //must have an exit in the ajax action callback!
        exit();
    
    }
    
  2. 你的jquery ajax请求没有查找响应,你的成功函数应该是

    success: function( response ){
        console.log( response );
    })
    
  3. 您的jquery ajax请求没有设置类型,因此将作为GET发送,但您的回调会查找POST变量。使用type: 'POST'作为ajax调用的选项。


  4. 使用Chrome开发人员工具上的网络标签,您可以查看其中的内容。您应该看到对admin-ajax.php的请求,您可以查看实际发送的请求和响应。