我正在使用jQuery .post编写表单,负责处理的文件有代码:
print_r($_POST);
返回以下动态输出:
Array ( [data] => capacity=50-1000+people&bookingdate=17%2F04%2F2012&grade=1+star )
我正在尝试将此数组拆分为三个变量,即容量,预订日期和成绩,但实际上并不知道如何。知道怎么样?我尝试使用 echo $ _POST [“capacity”]; ,但它不起作用。
提前致谢!
修改
这是我正在使用的jQuery:
<script type="text/javascript">
$(document).ready(function() {
$("#postData").click(function() {
$("#last-step").hide(600);
$.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) {
$("#result").html(data);
});
return false;
});
});
</script>
使用以下格式:
答案 0 :(得分:3)
我认为你应该改变这一行:
$.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) {
要
$.post('resources/process2.php', $("#task5_booking").serialize(), function(data) {
请注意,我将第二个参数从对象文字更改为(url编码)字符串。这会将表单中的每个变量作为单独的变量发布(就像它直接发布一样)。在服务器端,每个变量应该在$_POST
数组中单独提供。
答案 1 :(得分:1)
类似的东西:
parse_str($_POST['data'] , $output);
$capacity = $output['capacity'];
$bookingdate = $output['bookingdate'];
$grade = $output['grade'];
答案 2 :(得分:1)
你必须使用爆炸。
$data = array(); // A array to store the extracted value
$temp = explode("&", $data); // First of all explode by "&" to get the each piece
foreach($temp as $tval) {
$t = explode('=', $tval); // Next explode by "=" to get the index and value
$data[$t[0]] = $t[1]; //Add them to the array
}
另一种方法是使用parse_str():
$data = array();
parse_str($_POST['data'], $data);
在此之后,所有值都将映射到$data