以选择形式控制默认选择

时间:2014-06-30 20:38:20

标签: javascript php jquery forms

我希望当页面加载时,如果$ a = x,则select1出现在select表单中,否则如果$ a = y,则select2出现在select表单中,否则将出现Select。如何实现此目的?

以下所有代码都在表格的每一行中,行数未知。

PHP:

 $a;
    echo "<div class='res'> State:";
            if ($a[0]!="") $a=x;
            else if ($b[0]!="") $a=y;
            else echo "None";

echo "<form class='form-horizontal'>
    <fieldset  >   
        <span class='control-group' >
        <span  class='controls'>
            <select id='fl' class='form-control' style='cursor:pointer;'>
                <option selected='selected' style='display:none;' value='0'>Select</option>
                <option value='1'>Option1</option>
               <option value='2'>Option2</option>
               </select>

        </span>
        </span>
        <div><button id='mybtn' type='button'>Save</button></div>
    </fieldset>

</form>";

echo "</div";

4 个答案:

答案 0 :(得分:1)

我会建立一系列选项,如:

$option = [0=>'select', 1=>'option1', 2=>'option2' ...];

然后,构建您的选择框;只需遍历数组:

使用条件选择适当的默认值。

foreach($option as $k=>$v){
  if( <your condition> ){
    $selected = 'selected';
  }else{
    $selected = "";
  }
  echo "<option value='$k' '$selected'>$v</option>;
}

如果条件很简单,可以使用三元运算符来简化代码。 $selected = (condition) ? 'value for true' : 'value for false';

答案 1 :(得分:1)

switch($a) {
case 'x':
    $default = 1;
    break;
case 'y':
    $default = 2;
    break;
default:
    $default = 0;
}

echo "<form class='form-horizontal'>
    <fieldset  >   
        <span class='control-group' >
        <span  class='controls'>
            <select id='fl' class='form-control' style='cursor:pointer;'>
                <option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option>
                <option " . ($default == 1 ? "selected='selected'" : "") . " value='1'>Option1</option>
                <option " . ($default == 2 ? "selected='selected'" : "") . " value='2'>Option2</option>
            </select>

        </span>
    </span>
    <div><button id='mybtn' type='button'>Save</button></div>
    </fieldset>

</form>";

答案 2 :(得分:0)

在echo之前添加以下代码:

$option1 = '';
$option2 = '';
$showDefault = "<option value=''>Select</option>";
if ($a == $x) {
    $option1 = 'selected';
    $showDefault = '';
} else if ($a == $y) {
    $option2 = 'selected';
    $showDefault = '';
}

然后将HTML选项的行更改为:

"$showDefault
<option value='1' $option1 >Option1</option>
<option value='2' $option2 >Option2</option>"

这将允许您隐藏选项“选择”,除非需要。还有其他方法可以做到,但这种方式很简单。

答案 3 :(得分:0)

您不需要&#34;选择=&#39;已选择&#39;&#34;,只是简单地选择:

<option selected value='0'>Selected</option>

通常,我会用三元语句设置它们,例如:

?>
<option <?=$a=='':'selected'?''?> value='0'>Select</option>
<option <?=$a=='x':'selected'?''?> value='1'>Option 1</option>
<option <?=$a=='y':'selected'?''?> value='2'>Option 2</option>
<?