2016-10-02 91 views
-1

我正在用PHP构建一个学校脚本。我的PHP代码片段是这样的:Dropdown selected =“selected”issue

$sid = intval($mybb->input['sid']); 
$query = $db->simple_select("student_list", "*", "sid='{$sid}'"); 
$s = $db->fetch_array($query); 

$class_selected = ''; 
if ($s['student_class'] == $mybb->input['student_class']) 
{ 
    $class_selected = ' selected="selected"'; 
} 

和HTML是这样的:

<select name="student_class" class="textbox" tabindex="2"> 
    <option value="Play Group"'.$class_selected.'>Play Group</option> 
    <option value="Nursery"'.$class_selected.'>Nursery</option> 
    <option value="Prep."'.$class_selected.'>Prep.</option> 
    <option value="1"'.$class_selected.'>One</option> 
    <option value="2"'.$class_selected.'>Two</option> 
    <option value="3"'.$class_selected.'>Three</option> 
    <option value="4"'.$class_selected.'>Four</option> 
    <option value="5"'.$class_selected.'>Five</option> 
    <option value="6"'.$class_selected.'>Six</option> 
    <option value="7"'.$class_selected.'>Seven</option> 
    <option value="8"'.$class_selected.'>Eight</option> 
    <option value="9"'.$class_selected.'>Nine</option> 
    <option value="10"'.$class_selected.'>Ten</option> 
</select> 

但不幸的是一旦运行该值没有选择的所有脚本。 :/

顺便说的$s['student_class']值是Nursery

请帮助。

+1

难道你忘了'echo'吗? –

+0

Place'<?php echo $ class_selected; ?>'而不是$ class_selected –

+0

@u_mulder:不,页面正在运行PHP代码,它只是不显示selected =“selected” –

回答

2

正如我在评论中所说,最好使用三元运算符来处理这样的事情。

  • 它们在回声中有点棘手,但非常值得努力。

假设查询成功,并且:

if ($s['student_class'] == $mybb->input['student_class']) 

和上述等于以下选项之一,并记住的字符串是大小写敏感的,下面的工作:

旁注:您在评论中提到该代码位于回声中。

$class_selected = 'Nursery'; // Assumed input 

echo ' 
<select name="student_class" class="textbox" tabindex="2"> 

    <option value="Play Group" '.(($class_selected == 'Play Group') ? "selected" : "").'>Play Group</option> 

    <option value="Nursery" '.(($class_selected == 'Nursery') ? "selected" : "").'>Nursery</option> 

    <option value="" '.(($class_selected == 'Prep.') ? "selected" : "").'>Prep.</option> 

    <option value="1" '.(($class_selected == '1') ? "selected" : "").'>One</option> 

    <option value="2" '.(($class_selected == '2') ? "selected" : "").'>Two</option> 

    <option value="3" '.(($class_selected == '3') ? "selected" : "").'>Three</option> 

    <option value="4" '.(($class_selected == '4') ? "selected" : "").'>Four</option> 

    <option value="5" '.(($class_selected == '5') ? "selected" : "").'>Five</option> 

    <option value="6" '.(($class_selected == '6') ? "selected" : "").'>Six</option> 

    <option value="7" '.(($class_selected == '7') ? "selected" : "").'>Seven</option> 

    <option value="8" '.(($class_selected == '8') ? "selected" : "").'>Eight</option> 

    <option value="9" '.(($class_selected == '9') ? "selected" : "").'>Nine</option> 

    <option value="10" '.(($class_selected == '10') ? "selected" : "").'>Ten</option> 

</select> 

';