首页  >  文章  >  后端开发  >  $_POST无法接收由smarty模版自动生成的二维数组

$_POST无法接收由smarty模版自动生成的二维数组

WBOY
WBOY原创
2016-06-23 14:03:05946浏览

在同一个页面有多条相同的数据,分为组。

现在我遇到一个问题。
我无法取得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);

看一下结果

问题查到了,是系统框架过滤有问题。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn