多个textarea具有相同的名称和PHP处理

时间:2011-06-29 12:32:32

标签: php html textarea

我有一个动态表单,我可以在其中添加和删除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来生成数组。

如果可能,我该怎么做,或者我的代码有什么问题。

由于

2 个答案:

答案 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)(应该是一个数组)