我正在从数据库填充组合框,问题是当我从组合框中选择一个项目并尝试保存到数据库中的另一个表时,它会选择记录 ID 列而不是项目本身。 这就是填充组合框的方式。
<label>State</label>
<select name="state" class="state" onChange="display(this.value)" width="142" style="width: 142px">
<option value="" selected="selected">-- Select State --</option>
<?php
$query="select * from tbl_state";
$query_result=mysql_query($query)or mysql_error();
while($row=mysql_fetch_array($query_result))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['state_name']; ?></option>
<?php
}
?>
</select>
<div id="show_city" style="position: relative" height:5px;>
<label>LGA</label>
<select name="city" class="lga" width="142" style="width: 142px">
<option value="" selected="selected">-- Select LGA --</option>
</select>
</div>
</p>
数据库连接
$state = $_POST['state'];
$city = $_POST['city'];
$sql="INSERT INTO members (state, city)
VALUES ('$state', '$city')";
注意。我正在使用 javascript 填充组合框。
最佳答案
当您提交表单时,只会发送字段名称及其值。在您的情况下,当用户选择状态并按提交时,将按照您在选项值标记处指定的行 ID 发送行 ID。
您可以使用<option value="<?= $row['state_name'] ?>"> ... </option>"
然后直接在ini php中获取状态名:
$state = $_POST['state'];
或者保留现在的填充代码,并通过使用记录 ID 查询数据库来获取州名称。
$state_id = intval($_POST['state']);
$city_id = intval($_POST['city']);
$sql = "SELECT `state_name` FROM tbl_state WHERE id=$state_id";
$query_result = mysql_query($sql) or mysql_error();
$state = mysql_result($query_result, 0);
echo $state;
getcity.php
<?php
$con=mysql_connect('localhost','root','') or die('Mysql not connected');
mysql_select_db('thriftdb',$con) or die('DataBase not connected');
$state_id=$_REQUEST['state_id'];
$query="select * from lga where state_id='$state_id'";
?>
<label>LGA</label>
<select name="city" width="142" style="width: 142px">
<option value="" selected="selected">-- Select LGA --</option>
<?php
$query_result=mysql_query($query)or mysql_error();
while($row=mysql_fetch_array($query_result))
{
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['lga_name']; ?></option>
<?php
}
?>
</select>
数据库结构如下 “lga”表有...
lga_id --- state_id --- lga_name
“状态”表有
state_id --- state_name
关于javascript - 使用 php 从组合框插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575852/