2017-03-16 28 views
1

工作我有一个设置类似于这样一种形式:POST阵列并不总是为大家

<form action = "test.php" method="post"> 
<input type="text" name="name" /> 
<textarea name="item[]" rows="4" cols="90" maxlength="500" ></textarea> 
<input id="submitButton" type="submit" name="submit" class="submit action- button" value="Verzenden" ></textarea> 
</form> 

现在我有一个按钮,也该形式驻留在同一页上,它执行一个jQuery功能上。这个函数为表单添加一个额外的textarea(名称=“item []”,所以可能是如果用户点击那个按钮两次,我最终有三个textareas ..

现在,当用户提交表单那么它将进入另一个页面:test.php页面在这个页面中,我执行一个PHP脚本,在这个脚本中我测试POST是否已设置,然后捕获POST值。

现在,每个用户都会看到$ _POST [ name']的值,但对于$ _POST ['item']数组,有时候数组是空的(我看到它是在Mozilla Firefox浏览器51.0.1上)。即使他们用文本填充文本区.. 和他们得到这条线的警告(这是在test.php脚本中):

foreach($_POST['item'] as $item) 

奇怪,但有人认识到这些问题吗?

+1

可能的重复[多个输入相同名称通过POST在PHP](http://stackoverflow.com/questions/7880619/multiple-inputs-with-same-name-through-post-in-php) –

+0

bdy请分享您的jQuery代码,它添加了新的文本区域(可能存在问题)。此外您的文字区域未关闭。 ''丢失 –

+2

忘记关闭''标签可能是它的原因 – Saty

回答

1

1.关闭文本区域被错过。添加它象下面这样: -

<textarea name="item[]" rows="4" cols="90" maxlength="500"></textarea> 

2.确保您的jQuery代码添加每一个新的文本区域下方HTML: -

<textarea name="item[]" rows="4" cols="90" maxlength="500"></textarea> 
<!--name is area of concern here and must be same --> 

3.Apply检查befor使用foreach(): -

if(count($_POST['item'])>0){ 
    // here do you foreach() loop coding 
} 

注意: - 在单个文本区域中,您可以传递大量数据?那么为什么要多个文本区域?

+0

对不起,当在代码中输入问题时,我改变了我的问题中的表单代码。 – YdB

+0

第3步我会尝试 – YdB

+0

我在与页面相同的页面中对foreach进行了验证,并在其中添加了它的特性。有用。 – YdB