我正在尝试从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");
我真的迷失在这里,不知道出了什么问题。感谢您的支持,谢谢。
答案 0 :(得分:0)
非常接近,我可以发现三个问题
您的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();
}
你的jquery ajax请求没有查找响应,你的成功函数应该是
success: function( response ){
console.log( response );
})
您的jquery ajax请求没有设置类型,因此将作为GET发送,但您的回调会查找POST变量。使用type: 'POST'
作为ajax调用的选项。
使用Chrome开发人员工具上的网络标签,您可以查看其中的内容。您应该看到对admin-ajax.php的请求,您可以查看实际发送的请求和响应。