2010-05-18 61 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