在 PHP 的下拉列表中重复所选项目

Repitition of selected item in dropdownlist in PHP

我遇到这个问题,我的下拉列表中的选定值显示了两次。我该怎么做才能让它只显示一次。

 <td>
    <select class="span8" style="width:100%" name="from_time[]" id="from_time<?php echo $count;?>"  value="start_from" onchange="calculate_by_ajax(this.id);">
        <option value="<?php 
        $start_from=$jobs_result['start_from']; 
        //$date_arr_to= explode(" ", $start_from);
        //$date_to= $date_arr_to[0];
        //$time_to= $date_arr_to[1];
        $sec="SELECT DATE_FORMAT('$start_from', '%H:%i') as tp";
        $sec_exe=mysql_query($sec);
        $sec_res=mysql_fetch_array($sec_exe);
        ?>" selected="selected">
        <?php echo $sec_res['tp']; ?></option>
        <?php include("list.php"); ?>           
    </select>
</td> 

明白了,您实际上并没有修改一个可用选项并将其标记为已选中,而是使用您的代码添加了另一个选项。

您可以将 list.php 更改为如下所示(即所有时间的数组)

<?php 
    $drop_down_values = array('11:35', '11:36', '11:27'); 
?>

那么您的代码应该如下所示:

<?php 
    include("list.php");
    $start_from=$jobs_result['start_from']; 
    $sec="SELECT DATE_FORMAT('$start_from', '%H:%i') as tp";
    $sec_exe=mysql_query($sec);
    $sec_res=mysql_fetch_array($sec_exe);
?>
<td>
    <select class="span8" style="width:100%" name="from_time[]" id="from_time<?php echo $count;?>"  value="start_from" onchange="calculate_by_ajax(this.id);">
        <?php foreach ($drop_down_values as $value) {
            if ($value == $sec_rec) { 
                echo "<option selected=\"selected\">$value</option>";
            } else {
                echo "<option>$value</option>";
            }
        }
        ?>
    </select>
</td>