我正在尝试创建一个下拉菜单,该菜单将选择存储在数据库中的值。这是代码:
require 'koneksi.php';
$sql_select = "SELECT * FROM supplier";
$hasil = mysql_query($sql_select);
if(!$hasil) {
echo "data supplier not found ".mysql_error();
}
$id = $_GET["id"];
$hasil2 = mysql_query("SELECT * FROM brg_supplier WHERE id_brg=".$id);
$data = mysql_fetch_array($hasil2);
if($hasil2) {
$supplier = $data['nama_supplier'];
}
<select name="supplier">
<option value="">---pilih supplier---</option>
<?php
while($baris = mysql_fetch_array($hasil)){
?>
<option value="<?php $baris['nama_supplier'] ?>" <?php if ($supplier==$baris['nama_supplier']) echo 'selected="selected"'; ?> > <?php echo $baris['nama_supplier']; ?> </option>;
<?php }?>
</select>
问题是我的代码创建了一个没有选中的下拉列表。屏幕截图为link
我已尝试过stackoverflow中的所有解决方案。但是下拉值仍未选中。我知道它必须是一些简单的东西,我想失踪但严重的我无法弄明白。请任何人帮忙,谢谢!
答案 0 :(得分:2)
我认为问题出在这一行:
<option value="<?php $baris['nama_supplier'] ?>" <?php if ($supplier==$baris['nama_supplier']) echo 'selected="selected"'; ?> > <?php echo $baris['nama_supplier']; ?> </option>;
你错过了一个回声,看起来很有趣:/ 请尝试改为:
<option <?php $val=$baris['nama_supplier']; echo "value='$val'"; if($supplier==$val) echo "selected='selected'>";echo $val;?> </option>;
答案 1 :(得分:0)
Try this way..
$sel="select f.*,c.category from final f, category c where f.category_id=c.id and f.id='$id'";
$data=mysql_query($sel);
$res=mysql_fetch_assoc($data);
<select name="cat">
<?php
$sql = mysql_query("SELECT * FROM category");
while ($row = mysql_fetch_array($sql)){
if($row['id'] == $res['category_id']){
echo '<option value="'.$row['id'].'" selected="selected">'.$row['category'].'</option>';
}else{
echo '<option value="'.$row['id'].'">'.$row['category'].'</option>';
}
}
?>
</select>
答案 2 :(得分:0)
试试这个
require 'koneksi.php';
$sql_select = "SELECT * FROM supplier";
$hasil = mysql_query($sql_select);
if(!$hasil) {
echo "data supplier not found ".mysql_error();
}
$id = $_GET["id"];
$hasil2 = mysql_query("SELECT * FROM brg_supplier WHERE id_brg=".$id);
$data = mysql_fetch_array($hasil2);
if(mysql_num_rows($hasil2) > 0) {
$supplier = $data['nama_supplier'];
}
<select name="supplier">
<option value="">---pilih supplier---</option>
<?php
while($baris = mysql_fetch_array($hasil)){
?>
<option value="<?php echo $baris['nama_supplier'] ?>" <?php if ($supplier==$baris['nama_supplier']) {echo 'selected="selected"';} ?> > <?php echo $baris['nama_supplier']; ?> </option>;
<?php }?>
</select>
答案 3 :(得分:0)
<option value="<?php $baris['nama_supplier'] ?>
应该是
<option value="<?php echo $baris['nama_supplier'] ?>
答案 4 :(得分:0)
我花了一些时间试图为此找到最佳解决方案,并提出了一个小小的 jQuery 代码。
首先,您应该使用PDO
或mysqli
代替mysql
,因为它是deprecated。让我们假设你已经解决了这个问题。
在<form>
标记内添加<input type="hidden"/>
,以便它可以存储您的数据库值,例如:
<强> HTML 强>
<form>
<input id="valueFromDatabase" type="hidden" value="<?php echo $stringFromDB ?>"/>
</form>
注意:在这种情况下,$stringFromDB
是一个变量,用于保存您的查询从数据库返回。
现在我们在HTML代码中拥有数据库的价值。现在我们只需要检查<select>
标记内的任何选项是否等于此值。我们将使用jQuery来实现它:
<强>的jQuery 强>
$( document ).ready(function() {
$('option').each(function(){
if (this.value == $('#valueFromDatabase').val()){
this.setAttribute('selected', 'selected');
}
});
});
这里发生了什么?我们告诉jQuery分析HTML中的所有<option>
标签,并将其值与数据库中的值进行比较;如果它相等,我们将所选属性添加到等效的<option>
。
你可以工作here(使用日历示例)。
希望有所帮助!