2013-04-28 66 views
1

我試圖問一個用戶有多少客人。一旦用戶輸入了一個數字,那麼應該出現許多字段,然後用戶可以添加guest1,guest2等。但是,每次我嘗試創建for循環時,它似乎都不起作用。這是輸入客人人數的當前源代碼。PHP中的多個變量形式

<? echo "<input type='text' name='guestnumber' size='6' value='$guestnumber'>" ?>

我想發生的是,文本框的名稱將基於的他們已經進入客人數guest1虛擬機,guest2等。我確定這是一個非常簡單的循環,需要完成,但我不知道該怎麼做。

+2

給出你寫的所有代碼。 – ghost 2013-04-28 01:02:01

+0

使用php的form-array支持:'name =「guestnumber []」'。根據需要添加儘可能多的字段副本,最後只需在'$ _POST ['guestnumber']'中的所有字段中添加一組值[ – 2013-04-28 01:03:07

回答

2

這裏是一個基本的例子。提交表單不會重置字段。

您可以將所有值存儲在單獨的變量中,例如$guest1$guest2等,但是在處理$_POST數據時使用數組更容易。

在觸摸任何變量之前,我們檢查是否將該變量設置爲isset以防止出現錯誤。

<?php 

// Set up the number of guests 
if(isset($_POST['guestnumber'])) { 
    $numGuests = (int)$_POST['guestnumber']; 
    if ($numGuests < 1) { 
     $numGuests = 1; 
    } 
} 

if (isset($_POST['guests'])) { 
    // Handle guest data 
} 

?> 

<form method="POST" action=""> 
    <input type="text" name="guestnumber" size="6" value="<?php 

     // Retain field value between refreshes 
     if(isset($numGuests)) echo $numGuests; ?>"><br> 

    <?php 

    // Echo out required number of fields 
    if (isset($numGuests)) { 
     for ($i = 0; $i < $numGuests; $i++) { 

      // Store field information in a 'guests' array 
      echo "<input type='text' name='guests[]' value='"; 

      // Retain the guest names between refreshes 
      if (isset($_POST['guests'])) { 
       echo $_POST['guests'][$i]; 
      } 

      echo "'><br>"; 
     } 
    } 

    ?> 
    <input type="submit" value="Submit"> 
</form>