2017-10-17 63 views
1

我只是有一個問題。PHP - 如何在表單提交後保留文本框數組的值?

我有一組具有相同名稱的文本框。 (name =「quantity []」)

如何在提交後保留表單的值?例如,我有5個具有相同名稱的文本框。我填寫了其中4份並提交了表格。我想顯示一個字段爲空的錯誤,並保留我在提交表單之前放置​​的值。

我可以做到這一點,如果文本框名稱不同。但是,如果他們有相同的,我不能讓它工作。

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>"> 

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>"> 

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>"> 

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo $_POST['quantity'];?>"> 

<input type="submit" name="submit"> 

感謝您的幫助PHP的人。感謝您的幫助。

+1

'if(!empty($ _ POST ['quantity'] [0]))echo $ _POST ['quantity'] [0]' - .. [1]第二等 – Jeff

+0

嘗試使用JS驗證和AJAX提交表單,以便您可以保留您的數據,如果提交失敗 – hungrykoala

+0

嗨,傑夫,謝謝你的快速回答。如果我的文本框是動態創建的,它可能是2或10,這取決於用戶將選擇多少項目。非常感謝。 – danangeloalcanar

回答

1

如果字段數量不固定,即不同。你應該像這樣使用for循環

 <?php 

     if(!empty($_POST['quantiy'])){ 

     $count =count($_POST['quantity']); 

     for($i=0; $i<$count; $i++){ 

     ?> 
     <input type="text" name="quantity[]" value="<?php echo $_POST['quantity'][$i];?>"> 

     <?php 

       } 
      } 
    else 
    { 

    ?> 

    <input type="text" name="quantity[]" value=""> 

    <input type="text" name="quantity[]" value=""> 

    <input type="text" name="quantity[]" value=""> 

    <input type="text" name="quantity[]" value=""> 

<?php 
    } 
     ?> 
+0

嗨塞繆爾感謝您的回答。這對我有幫助。我的問題解決了。我感謝你的幫助人。 – danangeloalcanar

2

你的問題是,當表單提交時,你會丟失對輸入字段的引用。由於所有字段都具有相同的名稱,因此您無法確定哪個字段提供了輸入。

你可以做什麼:您可以通過彈出的$ _POST像這樣填寫表單字段:

<input type="text" name="quantity[]" value="<?php if(!empty($_POST['quantity'])) echo array_pop($_POST['quantity']);?>"> 

什麼情況如下:

  • 在提交您的$ _ POST變量變根據哪些輸入具有任何值而填充
  • 在重新呈現提交後$ _POST ['quantities']數組被反彙編後,最後一個元素被移除並填充表單輸入

請注意:如果用戶用此代碼填充字段1,2和4,字段1,2和3將填充。 [1]

+0

謝謝你,我會試試這個。我會回來,並會向你報告它是如何發生的。再次感謝你。 – danangeloalcanar

相關問題