繁体   English   中英

如何设置选定的值标签 <select> HTML从数据库中的PHP?

[英]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代码。

首先,您应该使用PDOmysqli而不是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM