[英]PHP - take value from database and set as value of HTML select tag
[英]how to set the selected value tag <select> html from database in php?
我正在尝试创建一个下拉菜单,该菜单将选择一个存储在数据库中的值。 这是代码:
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>
问题是我的代码创建了一个未选择任何内容的下拉列表。 这是屏幕截图: 链接
我已经尝试了stackoverflow中的所有解决方案。 但下拉值仍未选择。 我知道这很简单,我很想念,但严重的是我无法弄清楚。 请任何人帮助,谢谢!
我认为问题出在这一行:
<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>;
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>
试试看
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>
<option value="<?php $baris['nama_supplier'] ?>
应该
<option value="<?php echo $baris['nama_supplier'] ?>
我花了一些时间试图找到最佳的解决方案,并提出了一个小的jQuery代码。
首先,您应该使用PDO
或mysqli
而不是mysql
,因为它已被弃用 。 假设您已解决此问题。
在<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>
。
您可以在这里使用它(使用日历示例)。
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.