Это базовое окно множественного выбора:
<select name="State" size="5" multiple="multiple">
<option value="1">Kedah</option>
<option value="2">Kelantan</option>
</select>
Вопрос заключается не в том, чтобы вручную вводить значение параметра, а как получить данные из базы данных для использования в качестве значения параметра.
Мой БД выглядит так:
mysql> select sta_id,sta_name
-> from sys_state
-> where sta_status = '1';
+--------+----------------------------------+
| sta_id | sta_name |
+--------+----------------------------------+
| 01 | JOHOR |
| 02 | KEDAH |
| 03 | KELANTAN |
| 04 | MELAKA |
| 05 | NEGERI SEMBILAN |
| 06 | PAHANG |
| 07 | PULAU PINANG |
| 08 | PERAK |
| 09 | PERLIS |
| 10 | SELANGOR |
| 11 | TERENGGANU |
| 12 | SABAH |
| 13 | SARAWAK |
| 14 | WILAYAH PERSEKUTUAN KUALA LUMPUR |
| 15 | WILAYAH PERSEKUTUAN LABUAN |
| 16 | WILAYAH PERSEKUTUAN PUTRAJAYA |
+--------+----------------------------------+
Следующим шагом будет выборка этих строк и запись данных в переменную (это может быть массив или любой объект, в моем случае это массив) PHP MySQL Data Select:
$sql = "SELECT sta_id,sta_name FROM sys_state WHERE sta_status = '1'";
$result = $conn->query($sql);
$resultData = [];
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$resultData[$row['sta_id']] = $row['sta_name'];
}
}
Наконец, напечатайте их на html-странице:
<select name="State" size="5" multiple="multiple">
<?php
foreach ($resultData as $key => $value) {
echo '<option value="'.$key.'">'.$value.'</option>';
}
?>
</select>
Пытаться
<?php $qry = mysql_query("select sta_id,sta_name from sys_state where sta_status = '1'");?>
<select name="State" size="5" multiple="multiple">
<?php while($row = mysql_fetch_assoc($qry)){?>
<option value="<?php echo $row['sta_id'];?>"><?php echo $row['sta_name'];?></option>
<?php }?>
</select>
Заметка : — mysql_*
не рекомендуется использовать mysqli_*
или же PDO
Попробуйте с —
$mysqli = new mysqli("localhost", "user", "password", "database");
$res = $mysqli->query("select sta_id,sta_name from sys_state where sta_status = '1'");
?>
<select name="State" size="5" multiple="multiple">
<?php
while ($row = $res->fetch_assoc()) {
echo "<option value='".$row['sta_id']."'>".$row['sta_name']."</option>";
}
?>
</select>
Ну, в принципе вы можете просто echo
их
$dsn = "mysql:host=localhost;dbname=x";
$user="root";
$password="";
try{
$connect = new PDO($dsn,$user,$password); // PDO= PHP Data Object
$connect->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){echo $e->getMessage();}$select = $connect->query("select sta_id,sta_name from sys_state where sta_status = '1';");
echo "<select name=\"State\" size=\"5\" multiple=\"multiple\">";
foreach ($select as $temp){echo "<option value=\"1\">".temp["sta_name"]." </option>";
......
....}
echo "</select>";
$connect=null;// CLOSE CONNECTION
но построение их в функцию было бы лучше
Мне удалось сделать это так:
<?php // MULTI SELECTION$sql1 = " SELECT sta_id,sta_name FROM dof_perkhidmatan.sys_state WHERE sta_status = '1' ";
$result1 = $db->sql_query($sql1,END_TRANSACTION);
if($db->sql_numrows($result1) > 0)
{
?>
<select id="State" name="State" size="16" multiple="multiple">
<?php
// output data of each row
while($row_select = $db->sql_fetchrow($result1))
{
echo '<option value="'.$row_select['sta_id'].'">'.$row_select['sta_name'].'</option>';
}?>
</select>
<?php
}
?>
Попробуйте это, у меня все работало нормально
<?php
<!-- Connect to your database-->
require 'dbconnect.php';
<!-- Fetch required data from the database-->
$sql="SELECT sta_id,sta_name from sys_state WHERE sta_status = '1' ";
$result = mysqli_query($con, $sql);
?>
<select multiple size="6">
<?php while($row = mysqli_fetch_assoc($result)){?>
<option value="<?php echo $row['sta_id']; ?>"> <?php echo $row['sta_name']; ?></option>
<?php
}
?>
</select>
<?php $qry = mysql_query("select sta_id,sta_name from sys_state where sta_status = '1'");
$dropdown ='<select name="State" size="5" multiple="multiple">';
while($row = mysql_fetch_assoc($qry)){
$dropdown .='<option value="'.$row['sta_id'].'">'.$row['sta_name'].'</option>';
}
$dropdown .= '</select>';
echo $dropdown;
И это будет отражать выпадающий список с динамическими значениями