1

全部,如果我使用以下数据库字段/值:

用户 ID 字段名称 字段值
1 活动时间1 1
1 事件分钟1 30
1 个活动AMPM1 am
1 事件_1 设置
1 活动时间2 5
1 事件分钟2 30
1 个活动AMPM2 am
1 事件_2 取消

然后我有以下 HTML/PHP:

<?php
for($i=0;$i<50;$i++){
if ($i%2==0){
    echo '<tr bgcolor="#CCCCCC">';
} else {
echo '<tr>';
}
?>
<td><select size="1" id="EventHour<?php echo $i; ?>" name="EventHour<?php echo $i; ?>" > 
    <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> 
    <option>10</option> 
    <option>11</option> 
    <option>12</option> 
  </select> : <select size="1" name="EventMinute<?php echo $i; ?>" id="EventMinute<?php echo $i; ?>" > 
    <option>00</option> 
    <option>05</option> 
    <option>10</option> 
    <option>15</option> 
    <option>20</option> 
    <option>25</option> 
    <option>30</option> 
    <option>35</option> 
    <option>40</option> 
    <option>45</option> 
    <option>50</option> 
    <option>55</option> 
  </select> 
  <select size="1" name="EventAMPM<?php echo $i; ?>" id="EventAMPM<?php echo $i; ?>"> 
    <option>PM</option> 
    <option>AM</option> 
  </select></td> 
<td><b>&nbsp; 
  <select size="1" name="Event_<?php echo $i; ?>" id="Event_<?php echo $i; ?>" class="event_selection"> 
    <option>Select Event...</option> 
    <option value="Set Up">Set Up</option> 
    <option value="Take Down">Take Down</option> 

  </select> 
  </b></td> 
<td>&nbsp;Note:
  <input type="text" name="Note<?php echo $i; ?>" id="Note<?php echo $i; ?>"> 
  </td> 
</tr> 
<?php
}
?>

我想做的是根据数据库结果设置选择值。因此,如果选择 id 是 EventHour1,那么我想让选择选项为 1,如果它是 Event_2,那么我希望选择选项为 Take Down。

我怎样才能用 PHP 来做这件事?任何帮助将不胜感激!

提前致谢

4

1 回答 1

1

这是使用数组的基本思想。理想情况下,这些选项将从数据库中读取(当您必须查看要调试的源代码时,\t\n只是为了保持输出 HTML 格式干净 -<?php echo $i?>如果您愿意,也可以使用方法输出):

$curVal = /* lookup curVal from database for event */
echo "<select size='1' id='EventHour$i' name='EventHour$i'>\n";
$options = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
foreach ($options as $option) {
    if ($curVal == $option)
        $selected = " selected='selected'";
    else
        $selected = "";
    echo "\t<option$selected>$option</option>\n";
}
echo "</select>\n\n";

应该为事件 2 呈现类似的内容,例如:

<select size='1' id='EventHour2' name='EventHour2'>
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option selected='selected'>5</option> 
    <option>6</option> 
    <option>7</option> 
    <option>8</option> 
    <option>9</option> 
    <option>10</option> 
    <option>11</option> 
    <option>12</option>
</select>

演示:http: //ideone.com/BoEfr


我也质疑你的数据库设计。如果您尝试将事件存储在数据库中,我认为您将表示问题(字段 ID 等)与数据存储混淆了。您的数据库只需要捕获底层数据语义,即事件的详细信息:

event_id | user_id | event_name | hour | minute | am_pm
1        | 1       | Set Up     | 1    | 30     | am
2        | 1       | Take Down  | 5    | 30     | am

然后,当您显示事件时,您会注意以有意义的方式呈现它,即以带有下拉菜单或文本框的表格格式用于数据输入。

于 2012-07-03T22:01:38.573 回答