2011-03-24 101 views
0

一旦它加載到我的頁面中,如果DB表格中沒有保存任何內容,則會顯示所有選項。只要我做出選擇並重新加載頁面,所選的選項將從列表中消失,並且不會在下拉列表中重新加載。相反,它會顯示下一個取代選定位置的值。已選擇的選項在選擇消失時重新加載

如果我檢查SQL語句和$str,它會加載除$getBris(它有一個值)所選的那個之外的所有選項。

什麼可能導致我的選擇不顯示我選擇的選項,而是從列表中刪除它?

*它特別沒有按t work in IE8, wasn噸在Firefox的工作,但現在它

<script src="validation.js" type="text/javascript"></script> 

<html> 
<body onLoad="checkSecondValue();"> 
</body> 
</html> 
<?php 
    //retrieve all the bris for the drop down 
include '../../inc/database.php'; 
// ORDER BY RAND() 

$res = BbqcDatabase::getInstance()->doQuery('SELECT * FROM T_TOURNOI_BRIS'); 
$str = "<select name='ddlBrisSelected' id='ddlBrisSelected' onChange='checkSecondValue()'>"; 

$getBris = $_GET['bris']; 
$getBris = $getBris - 1; 
print_r("bris is : "+ $getBris); 


if($getBris == null) 
{ 
    $str .= "<option value='' selected></option>"; 
} 
else 
{ 
$str .= "<option value='999'>Choisir un bris</option>"; 
} 

$i = 0; 

while($data = mysql_fetch_assoc($res)) 
{ 
    if($data['F_BRISID'] == $getBris) 
    { 
     $str .= "<option value='" . $data['F_BRISID'] . "' selected '>" . $data['F_BRISTITLE'] . "</option>"; 
    } 
    else 
    { 
     $str .= "<option value='" . $data['F_BRISID'] . "'>" . $data['F_BRISTITLE'] . "</option>"; 
    } 
    $i++; 
} 

if($getBris == 12) 
{ 
    $str .= "<option value=12 selected>Autre</option>"; 
} 
else 
{ 
    $str .= "<option value=12>Autre</option>"; 
} 

$str .= "</select>"; 

echo $str; 

if(is_numeric($bris)) 
{ 
    echo "<script type=\"text/javascript\">alert('test');checkSecondValue();</script>"; 
} 
?> 
+1

您的HTML代碼無效。 '

1

一種構造,這樣

if($getBris == 12) 
{ 
    $str .= "<option value=12 selected>Autre</option>"; 
} 
else 
{ 
    $str .= "<option value=12>Autre</option>"; 
} 

高度浪費的空間,並迫使你複製HTML的一大塊,其區別僅在於「選擇」屬性。爲什麼不這樣做:

$selected = ($getBris == 12) ? ' selected' : ''; 
$str .= "<option value=12{$selected}>Autre</option>"; 
+0

不是我的邏輯,但感謝您的改善! – 2011-03-24 16:00:15

相關問題