2017-02-23 55 views
0

我有我通过AJAX提交给一个PHP函数,像这样一种形式:序列化表单数据只返回一个字母(“R”)

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)

但是,当我提醒$ results的返回值['t esting']在我的ajax成功函数中,我只得到一个字符,字母“r”,甚至没有出现在该字段的值(即“class-education”)中。

这是通过ajax传递表单输入值的最佳方式吗?如果是这样,我可能在这里做错了什么。

回答

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']; 
+0

啊哈!这是有道理的,我假设序列化吐出不同的格式。 – Eckstein

相关问题