我有一个动态表单,我可以在其中添加和删除textarea。 textareas的名称是MyTextarea []
<textarea style="display:inline;" name="MyTextarea[]"></textarea>
<textarea style="display:inline;" name="MyTextarea[]"></textarea>
所以,当我想用PHP处理这个textarea时,我正在做:
echo $_POST['MyTextarea'];
所以屏幕上会显示Array
,到目前为止还可以
所以我做了一个print_r($_POST['MyTextarea']);
,我又得到了相同的结果:Array
我想知道是否可能有许多与[]
具有相同名称的textarea来生成数组。
如果可能,我该怎么做,或者我的代码有什么问题。
由于
答案 0 :(得分:4)
是的,在php中如果你有一个像这样的名字的输入字段“MyTextarea []”作为一个数组发布。
因此,如果您想访问数据,则必须执行以下操作:
echo $_POST['MyTextarea'][0];
如果您有多个具有相同名称的textareas,您将获得一个数组,其中每个索引都有一个textarea。表单中的第一个textarea是数组中的第一个textarea
你可以做到
foreach ($_POST['MyTextarea'] as $textarea){
//do wat you need
}
如果您需要在dinamically添加多个textareas,这显然是一个杀手级功能。
答案 1 :(得分:2)
你使用哪种框架,我很确定在某一点上有一些东西可以将你的数组转换成一个字符串,也许就像这样对POST变量进行处理:
foreach ($_POST as $key => $value) {
if ($value && !$is_magic_quotes_gpc) {
$_POST["$key"] = addslashes($value);
}
在这种情况下,您必须删除此功能... 为了确定我在说什么,你可以试一下var_dump($ POST [MyTextarea])=&gt;字符串'Array'(长度= 5)(应该是一个数组)