2015-08-29 3 views
0

В моей базе данных У меня есть стол (band) с 2 колонками (band_id и title). В PHP я получил переменную, которая хранит выбранный идентификатор (selected_band_id) и форму, которая считывает значения из таблицы и отображает форму.Как выбрать выбранное значение в форме пребывания?

Таблица:

+---------+---------+ 
| band_id | title | 
+---------+---------+ 
|  1 | Title 1 | 
|  2 | Title 2 | 
|  3 | Title 3 | 
+---------+---------+ 

PHP:

<?php 
    $query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`"; 
    $result = mysqli_query($mysqli, $query); 
    if (!$result) { 
    die("Database query failed."); 
    } 
?> 

<?php 
    if (isset($_POST['select_band'])) { 
    $selected_band_id = $_POST['select_band']; 
    } 
?> 

<form method="post" name="form_band" action=""> 
    <select name="select_band" onchange="javascript: submit()"> 
    <?php 
     while ($row = mysqli_fetch_assoc($result)) { 
     echo "<option value=".$row["band_id"] . ">" .$row["title"] ."</option>"; 
     } 
    ?> 
</select> 
</form> 

Как сделать выбранные переменные пребывания выбраны (показано) в форме? Он всегда переходит к первому элементу списка. Я не могу понять это с помощью PHP. Спасибо за любые предложения!

+0

Где '$ result' и остальная часть соответствующего кода? – user5173426

+0

Добавлено. Переменная 'mysqli' содержит параметры' mysqli_connect'. –

ответ

0

Это должно исправить ваш PHP код:

<?php 
 
    $query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`"; 
 
    $result = mysqli_query($mysqli, $query); 
 
    if (!$result) { 
 
    die("Database query failed."); 
 
    } 
 
?> 
 

 
<?php 
 
    if (isset($_POST['select_band'])) { 
 
    $selected_band_id = $_POST['select_band']; 
 
    } 
 
?> 
 

 
<form method="post" name="form_band" action=""> 
 
    <select name="select_band" onchange="javascript: submit()"> 
 
    <?php 
 
     while ($row = mysqli_fetch_assoc($result)) { 
 
     $selected = ''; 
 
     if($selected_band_id == $row["band_id"]){ 
 
       $selected = ' selected'; 
 
     } 
 
     echo "<option value=".$row["band_id"] . $selected . ">" .$row["title"] ."</option>"; 
 
     } 
 
    ?> 
 
</select> 
 
</form>

+0

Большое спасибо! Посмотрите на 'selected'. –

1

<option value... имеет тег selected. Это вы должны установить для правильной группы. Поэтому, если $ row ["band_id"] == $ selected_band_id, установите selected в этом <option>.

0
<?php 
    $query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`"; 
    $result = mysqli_query($mysqli, $query); 
    if (!$result) { 
    die("Database query failed."); 
    } 
?> 

<?php 
    if (isset($_POST['select_band'])) { 
    $selected_band_id = $_POST['select_band']; 
    } 
?> 

<form method="post" name="form_band" action=""> 
    <select name="select_band" onchange="javascript: submit()"> 
    <?php 
     while ($row = mysqli_fetch_assoc($result)) 
    {?> 
     <option value="$row['band_id']" <?if($row['band_id']==$selected_band_id){echo "selected";}?>>$row["title"]</option> 
    // Here, selected item will get as selected 
     <?} 
    ?> 
</select> 
</form> 
Смежные вопросы