2015-08-29 46 views
0

在我的数据库中,我得到了一个表格(band)和2列(band_idtitle)。在PHP中,我获得了存储选定ID(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

非常感谢!将研究'选择'。 –

1

<option value...有一个标签selected。这个你应该为正确的乐队设定。因此,如果$ row [“band_id”] == $ selected_band_id,请在此<option>中设置selected

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> 
相关问题