2012-07-05 454 views
0

基本上我在這裏有兩種形式,第一種是簡單的下拉式選擇,您可以在其中選擇需要多少個「節」,這些「節」中的每一個都需要一個鍵和一個值,表單被提交後,它會運行一個循環,併爲所選的數量生成輸入框到另一個表單中。這一切工作正常。 當提交第二個表單時,輸入框消失。它發佈數據和字符串似乎。HTML表單元素在提交後消失

 <?php 
    $userkey = $_POST['key1']; 
    $userval = $_POST['val1']; 
    $usernum = $_POST['usernum']; 
    ?> 
<form action='MYPIE.PHP' method='POST'> 
       HOW MANY SECTIONS? 
        <select name="usernum"> 
          <option>1</option> 
          <option>2</option> 
          <option>3</option> 
          <option>4</option> 
          <option>5</option> 
          <option>6</option> 
          <option>7</option> 
          <option>8</option> 
          <option>9</option> 
        </select> 
       <input type="submit" name="submitnum" value="submit" /> 
     </form> 


    <form action='MYPIE.PHP' method='POST'>  
     <?php 
      for ($i=1; $i<$usernum+1; $i++){ 
       echo "<br>insert key: <input name='key".$i."' value='hi".$i."'> insert value: <input name='val".$i."' value='val".$i."'>"; 
      } 
     ?> 
     </br> 
     <button type="submit" value="submit" name="submit keys" /> 
    </form> 
+1

作爲一個側面說明,您可以在表單名稱中使用數組;這將使檢索值更容易。所以''input name ='key'。$ i。「''會變成' jeroen 2012-07-05 22:47:23

+0

啊是的,謝謝! – Kza 2012-07-05 22:52:22

回答

2

這是因爲第二次提交表單時,發佈的數據不存儲。您可以使用包含您的數據的隱藏輸入來修復此問題。

<form action='MYPIE.PHP' method='POST'>  
    <?php 
     echo '<input type="hidden" value="' . $usernum . '" name="usernum" />'; 
     for ($i=1; $i<$usernum+1; $i++){ 
      echo "<br>insert key: <input name='key".$i."' value='hi".$i."'> insert value: <input name='val".$i."' value='val".$i."'>"; 
     } 
    ?> 
    </br> 
    <button type="submit" value="submit" name="submit keys" /> 
</form> 

該行:<input type="hidden" value="' . $usernum . '" name="usernum" />將在您第二次提交表單時重新發送usernum數據。

+0

完美,謝謝! – Kza 2012-07-05 22:49:19

0

$usernum在您提交第二個表單後不會保留。這只是第一種形式。爲了解決這個問題,在第二種形式中創建一個隱藏的表單元素。

<input type="hidden" name="usernum" value="<?php echo $usernum; ?>" /> 

這將導致第一個提交表單時不僅要提交的值,但第二次爲好,和你的循環會顯示輸入正確的數字。

+0

完美的解釋,謝謝一堆 – Kza 2012-07-05 23:01:45

0

那是因爲你失去了貼usernum,試試;

<?php 
    for ($i=1; $i<$usernum+1; $i++){ 
      echo "<br>insert key: <input name='key".$i."' value='hi".$i."'> insert value: <input name='val".$i."' value='val".$i."'>"; 
     } 
?> 
<input type="hidden" name="usernum" value="<?php echo $usernum; ?>">