所以我正在为我网站的添加住宿部分创建一些php代码。用户可以从下拉菜单中选择一个城市(通过使用简单的查询和回声从mysql数据库中的城市表中检索列表)。但是需要存储在添加住宿表中的是城市ID,当然我不能向用户询问!我无法弄清楚的是如何使用所选城市查询城市表并从同一个表中检索城市ID并将其存储在后端数据库的调节表中。这是我到目前为止的代码。
<?php
$query = "SELECT City_Name FROM Cities";
$result = mysql_query($query);
?>
<p>
<label for = "City_Name" class = "fixed_required">City: </label>
<select name="select_City" id="select_City" value="<?php if(isset($_POST['City_Name'])) echo $_POST['City_Name']; ?>"/>
</p>
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['City_Name'];?>"> <?php echo $line['City_Name'];?> </option>
<?php
答案 0 :(得分:1)
试试这个:
value="<?php echo $line['City_ID'];?>"
并更改您的查询以包含ID:
$query = "SELECT City_Name, City_ID FROM Cities";
已编辑:
好的......你还需要设置&#34; SELECTED&#34;属性基于OPTION标记上的$_POST['select_City']
并删除value="<?php if(isset($_POST['City_Name'])) echo $_POST['City_Name']; ?>"
标记上的SELECT
....就像@Dan Revah建议的那样,使用MYSQLI代替,因为自PHP 5.5以来不推荐使用mysql 0.0
<?php
$query = "SELECT City_Name, City_ID FROM Cities";
$result = mysql_query($query);
?>
<p>
<label for = "City_Name" class = "fixed_required">City: </label>
<select name="select_City" id="select_City" />
</p>
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['City_ID'];?>"
<?php
if(isset($_POST['select_City'])) {
if(mysql_real_escape_string($_POST['select_City'])==$line['City_ID']) {
echo "selected"
}
}?>
>
<?php echo $line['City_Name'];?> </option>
<?php