2017-03-16 51 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