Я пытаюсь создать раскрывающееся меню, которое будет выбирать значение, которое хранится в базе данных. вот код:
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>
.
Вы можете здесь работать (используется пример календаря).
Надеюсь, это поможет!