我有一个表单,我通过ajax提交给像这样的php函数:
var formData = $(form).serialize();
$.ajax({
type : 'post',
dataType : 'json',
url : myAjax.ajaxurl, //we can use this value because in our php file we used wp_localize_script
context:this,
data : {action: 'tps_save_rental_details', formData:formData },
success: function(response) {
alert (response.testing);
}
});
我认为通过使用.serialize()它会以json形式传递表单数据然后我可以在我的php函数中使用它,如下所示:
$formData = $_REQUEST['formData'];
$rentalType = $formData['rentalType'];
$result['testing'] = $rentalType;
(租赁类型是第一个文本输入字段的名称/ ID)
但是当我在我的ajax成功函数中提醒$ results [' testing']的返回值时,我只得到一个字符,字母" r"它甚至不会出现在该领域的价值中(即#34; class-education")。
这是通过ajax传递表单输入值的最佳方法吗?如果是这样,我可能在这里做错了什么。
答案 0 :(得分:1)
serialize方法只接受表单元素并将它们以字符串形式放置。 "varname=val&var2=val2"
您可以在php中获取这些值,如:
$params = array();
parse_str($_GET, $params);
特定于OP的案例:
$formData = array();
parse_str($_REQUEST['formData'], $formData);
$result['testing'] = $formData['rentalType'];