2012-04-12 75 views
0

这是另一个。同一天两次。我试图设置4个选择框,如果它们等于enSlot的值,则显示基于Target1-4中的值选择的选项。PHP没有正确更新选择框

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,目标2 = 2,Target3 = 3,Target4 = 4 敌人有4个记录,enSlot = 1 - 4

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

回答

1

的问题是在你的逻辑无论哪个条件评估值$老是会被选中=选择...你可以试试这个:

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>"; 

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

我看到失踪</option>

+0

谢谢,马虎编程,但没有解决问题。 – 2012-04-12 14:47:19

+0

$ s =“selected = selected”;总是设置? – 2012-04-12 14:48:50

+0

你的权利,现在要弄清楚如何使它工作 – 2012-04-12 14:56:33