PHP没有正确更新选择框

时间:2012-04-12 14:34:29

标签: php

这是另一个。在同一天两次。我正在尝试设置4个选择框,如果它们等于enSlot的值,则显示根据Target1-4中的值选择的选项。

echo "<select id='target".$row['paSlot']."' size='1' style='width:90px;'>";
$query = "SELECT * FROM enemy WHERE enChar = ".$_SESSION['chNum']." ORDER BY enSlot";
$result1 = mysql_query($query, $_SESSION['connect']) or die('Error 150: '.mysql_error());
while ($row1 = mysql_fetch_array($result1)) {
    $s = "";
    if ($_GET['Target1'] == $row1['enSlot']) {
            $s = "selected='selected'";
    }
    if ($_GET['Target2'] == $row1['enSlot']) {
            $s = "selected='selected'";
    }
    if ($_GET['Target3'] == $row1['enSlot']) {
            $s = "selected='selected'";
    }
    if ($_GET['Target4'] == $row1['enSlot']) {
            $s = "selected='selected'";
    }
    echo "<option value=".$row1['enSlot']." ".$s.">".$row1['enSlot'].". ".$row1['enRace'];
}
echo "</select>";

我用它运行它:

Target1 = 1,Target2 = 2,Target3 = 3,Target4 = 4 Enemy有4条记录,enSlot = 1 - 4

当它执行时,我得到所有4个选择框,显示Target4的最后一个值被选中。

2 个答案:

答案 0 :(得分:2)

echo "<option value=".$row1['enSlot']." ".$s.">".$row1['enSlot'].". ".$row1['enRace'];

我发现缺少</option>

答案 1 :(得分:1)

问题出在你的逻辑中,无论在哪种条件下评估$ s的值总是会被​​选中=选中......你可以试试这个:

while ($row1 = mysql_fetch_array($result1)) {
    foreach( $_GET[] as $target ) {
        if( $target == $row1['enSlot'] ) {
            echo "<option value=".$row1['enSlot']." selected=selected>".$row1['enSlot'].". ".$row1['enRace']."</option>";
        } else {
            echo "<option value=".$row1['enSlot'].">".$row1['enSlot'].". ".$row1['enRace']."</option>";

        }
    }
}