2015-01-15 38 views
2

我有一个静态的下拉列表中,如下形式:显示在下拉列表中保存的数据 - HTML选择标签

<select class="form-control" id="brand" name="brand"> 
<option value="">Please select a Brand</option> 
<option value="Apple">Apple</option> 
<option value="Samsung">Samsung</option> 
<option value="Sony">Sony</option> 
</select> 

当用户选择一个品牌,让说:苹果并提交表单。值“Apple”将被保存在mysql数据库中。我可以选择让用户在提交表单后修改表单。

当用户编辑表单时,我知道如何从mysql中检索数据并将其回显出来,但是如何使这个选项包含值“Apple”作为选择,以便此值“Apple”将显示为默认值代替“请选择一个品牌”?

谢谢,

回答

3

从数据库假设变量保存这个值$brand那么你可以做这样的事情:

<select class="form-control" id="brand" name="brand"> 
    <option value="">Please select a Brand</option> 
    <option value='Apple' <?php echo $brand=='Apple'?'selected':''; ?>>Apple</option> 
    <option value='Samsung' <?php echo $brand=='Samsung'?'selected':''; ?>>Samsung</option> 
    <option value='Sony' <?php echo $brand=='Sony'?'selected':''; ?>>Sony</option> 
</select> 

当然这可以通过,如果您有一个循环来完成可以在一个查询中获得所有品牌。也许是这样的:

<select class="form-control" id="brand" name="brand"> 
<?php 
$brands_array=array("Apple","Samsung","Sony"); // could come from DB 
    foreach($brands_array as $b) { 
    echo '<option value="',$b,'"',($brand==$b ?' selected="selected"':'').'>',$b,'</option>'; 
    } 
?> 
</select> 

希望这会有所帮助。

积分伊斯梅尔米格尔的宝贵意见和建议

+1

如果您打算使用PHP,请使用包含所有品牌的数组。此外,由于您在'$ brand =='“'检查中混合了引号,因此您的代码会产生大量语法错误。 – 2015-01-15 16:35:56

+0

这就是我建议品牌处于循环状态的问题,我将更新答案。错误 – Nikos 2015-01-15 16:37:22

+2

你的更新看起来不错,但避免使用大写变量在PHP中,带有大写字母的变量被认为是'系统'变量,同时请注意'$ brand =='$ b''将总是* *因为你的数组中没有'$ b'这个品牌,所以'False'你想要'$ brand =='$ b“'或** better **'$ brand == $ b'。也有一个小的错字:你有'perhas'而不是'也许' – 2015-01-15 16:48:08

1

您必须设置您的选项的“选定”参数。

例子:

<option value="Apple" selected>Apple</option> 
0

只要将它连接到MySQL,并检查他检查其值,然后就显示出选项。使用选择下面的HTML

<select class="form-control" id="brand" name="brand"> 
<option value="">Please select a Brand</option> 
<option value="Apple" selected>Apple</option> 
<option value="Samsung">Samsung</option> 
<option value="Sony">Sony</option> 
</select> 

代码http://jsfiddle.net/jkrryuhx/

在这个例子中,苹果将选择默认

希望这有助于你

相关问题