Home >Backend Development >PHP Tutorial >$_POST无法接收由smarty模版自动生成的二维数组
在同一个页面有多条相同的数据,分为组。
现在我遇到一个问题。
我无法取得smaryt对input自动生成的name序列。
其中,索引0和1是由smarty通过变量生成的。
我现在$_POST无法取得这些值,为什么?
var_dump($_POST[my]);
array (size=2)
0 => string 'Array'
1 => string Array'
请大家帮忙。
BUG?
你 print_r($_POST['my']); 能看到什么?
BUG?
你 print_r($_POST['my']); 能看到什么?
什么也没有
BUG?
你 print_r($_POST['my']); 能看到什么?
我用一个全新的页面,对照PHP的手册做没问题,
但在正式开发的程序里却得不到。
无聊的吧?
既然你
var_dump($_POST[my]);
显示
array (size=2)
0 => string 'Array'
1 => string Array'
那么
print_r($_POST['my']);
怎么会什么也没有呢?
你标签闭合了吗
=>
无聊的吧?
既然你
var_dump($_POST[my]);
显示
array (size=2)
0 => string 'Array'
1 => string Array'
那么
print_r($_POST['my']);
怎么会什么也没有呢?
print_r($_POST['my'])
输出的也是
Array ( [0] => Array [1] => Array )
你标签闭合了吗
=>
当然是闭合了的,呵呵。
是不是因为name必须要是一个字符串才行?
是不是因为name必须要是一个字符串才行?
那不是的。
这个问题怎么办啊。一步一步调,一维数组没问题,二维数组就有问题了。
你在浏览器“查看网页源代码”,对这部分都看到了什么
源代码是由smarty自动生成的。
<tr> <td class="lable" colspan="6"><p align="center">职位信息</p></td> </tr> <tr> <td class="lable">职位名称</td> <td colspan="5"><input type="text" name="job[0][jobname]" value="营销经理" />营销经理</td> </tr> <!-- <tr> <td class="lable">行业类别</td> <td> 44
<tr> <td class="lable">职位名称</td> <td colspan="5"><input type="text" name="job[1][jobname]" value="销售总监" />销售总监</td> </tr>
是这里生成的。
那你在接收表单时还做了什么?
smarty 好像不替你做表单数据接收处理的
我在接收时就用的
$jobname = $_POST["job"];var_dump($jobname);
输出的结果是
array (size=2)
0 => string 'Array' (length=5)
1 => string 'Array' (length=5)
使用print_r
输出的是
Array ( [0] => Array [1] => Array )
那你把表单的目标改成这样 action=test.php
test.php 就这样
print_r($_POST);
看一下结果
问题查到了,是系统框架过滤有问题。