有输入表格,如<input type="text" name="record_date[] ...
将表单发送到其他 php 文件的 ajax 的一部分是
var values = $("form").serialize();
$.ajax({
type: 'POST',
data: { 'Values' : values },
dataType: 'json',
另一个php文件接收数据
$values = $_POST['Values'];
据了解,这parse_str($_POST['Values'],$output);
会创建数组($output
是数组)
但是有了这个print_r(json_encode($output));
我什么都看不到(预计会看到带有值的数组等)
如果使用echo json_encode($output['record_date']);
,则一切正常并获得输入的值。
尝试创建数组,然后像这样使用数组
foreach ($output as $i=>$output_value ) {
echo json_encode($output_value[$i]);
}
改为这个echo json_encode($output_value['record_date'][$i]);
,但在这两种情况下都没有回应。
据我了解,主要问题是如何“修改/转换”parse_str($_POST['Values'],$output);
为 php 数组
$_POST['Values']
看起来像这样:record_date%5B%5D=02.07.2013&record_date%5B%5D=01.07.2013
可能而不是parse_str
需要使用其他东西
更新
如果在 ajaxdataType: 'json',
和 php中使用
foreach ($output as $key => $output_value) {
echo json_encode($output_value);
}
然后什么都得不到。
如果 comment dataType: 'json',
,则参见 ["02.07.2013","01.07.2013"]。
如果不echo json_encode($output_value);
使用echo $output_value;
,请查看长列表ArrayArrayArrayArrayArray
。
如果在内部foreach
使用var_dump($output_value);
,则如下所示
array(2) { [0]=> string(1) "2" [1]=> string(1) "6" }
...............
array(2) { [0]=> string(10) "02.07.2013" [1]=> string(10) "01.07.2013" }
似乎echo $output[$key][0]
在 foreach 内部做了必要的事情......
最后得出结论,必须使用这种代码
foreach ($output[record_date] as $key => $output_value) {
echo $output_value. ' output value<br>';
echo $output[other_name_from_html_input][$key]. ' output date selector value<br>';
}