2010-05-18 65 views
0

我有一個窗體,如果指示的值小於或等於所需的登錄人數,它就會循環。 while循環完全適用於一個例外,我使用DOB字段,它們也使用FOR循環來顯示它們的值。如果我刪除DOB字段,則表單循環可以正常工作,如果留下,則會出錯。有任何想法嗎?窗體循環錯誤

<form id="Enroll_Form" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="Enroll_Form" > 

<?php 
$i=1; 
while ($i <= ($_SESSION['Num_Members'])): {?> 

    <table class="demoTable"> 
    <tr> 
     <td>First Name: </td> 
     <td><input type="text" name="F1FirstName" value="<?php echo $fields['F1FirstName']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>Middle Initial: </td> 
     <td><input type="text" name="F1MI" size="2" maxlength="1" value="<?php echo $fields['F1MI']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>Last Name: </td> 
     <td><input type="text" name="F1LastName" value="<?php echo $fields['F1LastName']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>Federation No: </td> 
     <td><input type="text" name="F1FedNum" maxlength="10" value="<?php echo $fields['F1FedNum']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>SSN: </td> 
     <td><input type="text" name="F1SSN1" size="3" maxlength="3" value="<?php echo $fields['F1SSN1']; ?>" /> - 
     <input type="text" name="F1SSN2" size="2" maxlength="2" value="<?php echo $fields['F1SSN2']; ?>" /> - 
     <input type="text" name="F1SSN3" size="4" maxlength="4" value="<?php echo $fields['F1SSN3']; ?>" /> 
     </td> 
    </tr> 
    <tr> 
     <td>Date of Birth</td> 
     <td> 
     <select name="F1DOB1"> 
      <option value="">Month</option> 
      <?php 
       for ($i=1; $i<=12; $i++) 
      { 
      echo "<option value='$i'"; 
      if ($fields["F1DOB1"] == $i) 
       echo " selected"; 
      echo ">$i</option>"; 
      } 
      ?>    
     </select>/
     <select name="F1DOB2"> 
      <option value="">Day</option> 
      <?php 
       for ($i=1; $i<=31; $i++) 
      { 
      echo "<option value='$i'"; 
      if ($fields["F1DOB2"] == $i) 
       echo " selected"; 
      echo ">$i</option>"; 
      } 
      ?> 
     </select>/
     <select name="F1DOB3"> 
      <option value="">Year</option> 
      <?php 
       for ($i=date('Y'); $i>=1900; $i--) 
      { 
      echo "<option value='$i'"; 
      if ($fields["F1DOB3"] == $i) 
       echo " selected"; 
      echo ">$i</option>"; 
      } 
      ?> 
     </select> 
     </td> 
    </tr> 
    <tr> 
     <td>Address: </td> 
     <td><input type="text" name="F1Address" value="<?php echo $fields['F1Address']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>City: </td> 
     <td><input type="text" name="F1City" value="<?php echo $fields['F1City']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>State: </td> 
     <td><select name="F1State"><option value="">Choose a State</option><?php showOptionsDrop($states_arr, null, true); ?></select></td> 
    </tr> 
    <tr> 
     <td>Zip Code: </td> 
     <td><input type="text" name="F1Zip" size="6" maxlength="5" value="<?php echo $fields['F1Zip']; ?>" /></td> 
    </tr> 
    <tr> 
     <td>Contact Telephone No: </td> 
     <td>(<input type="text" name="F1Phone1" size="3" maxlength="3" value="<?php echo $fields['F1Phone1']; ?>" />) 
     <input type="text" name="F1Phone2" size="3" maxlength="3" value="<?php echo $fields['F1Phone2']; ?>" /> - 
     <input type="text" name="F1Phone3" size="4" maxlength="4" value="<?php echo $fields['F1Phone3']; ?>" /> 
     </td> 
    </tr> 
    <tr> 
     <td>Email:</td> 
     <td><input type="text" name="F1Email" value="<?php echo $fields['F1Email']; ?>" /></td> 
    </tr>  
    </table> 
<br /> 
<?php } $i++; endwhile; ?> 

<div align="right"><input class="enrbutton" type="submit" name="submit" value="Continue" /></div> 
</form> 

回答

3

你在你的while循環使用$i,並在所有的for循環。你需要改變它到別的東西。

這可能會導致您一些問題(更不用說它非常難以理解)

+0

就是這樣!感謝您的幫助!我很好奇 - 在$ i變量之外,還有什麼讓你對代碼感到困惑?這看起來很簡單,但我總是對改進感興趣。 – JM4 2010-05-18 00:56:32

+0

@ JM4 - 這就是我的意思,當你爲4種不同的東西使用相同的變量時,很難追蹤東西。 – 2010-05-18 01:11:46