как установить выделенный тег значения <select> html из базы данных в 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 анализировать все теги <option> в HTML и сравнивать его значение с нашим значением из базы данных; если он равен, мы добавляем выбранный атрибут к эквивалентной <option> .

Вы можете здесь работать (используется пример календаря).

Надеюсь, это поможет!