gpt4 book ai didi

php - 国家/地区下拉列表将 ID 而不是名称(字符串)插入数据库(mysql)

转载 作者:行者123 更新时间:2023-11-28 23:15:19 24 4
gpt4 key购买 nike

大家好,我的网站有一个问题,我的下拉列表作为 POST 方法(针对国家、州和城市)工作得很好,除了一个问题将 ID 而不是实际名称本身插入到我的数据库中。

我很困惑,因为它在网页本身上显示一切正常(为个别国家、州和城市显示专有名称。

请帮助我确定我的代码中应该出现问题的位置。

非常感谢。

这是我的注册页面代码

<div>
<select name="country" class="country">
<option value="<?php echo $row['country_name'] ?>">--Select Country--</option>
<?php
$stmt = $conn->prepare("SELECT * FROM countries");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['country_id']; ?>"><?php echo $row['country_name']; ?></option>
<?php
}
?>
</select>

<select name="state" class="state">
<option value="<?php echo $row['state_name'] ?>">--Select State--</option>
</select>

<select name="city" class="city">
<option value="<?php echo $row['city_name'] ?>">--Select City--</option>
</select>
</div>
<input type="submit" name="registration" value="REGISTER">
<input type="reset" value=". . . RESET . . .">

这是从以下字段获取数据的另一个代码

获取状态代码

<?php
include('db_conn.php');
if($_POST['id'])
{
$id=$_POST['id'];

$stmt = $conn->prepare("SELECT * FROM states WHERE country_id=:id");
$stmt->execute(array(':id' => $id));
?><option selected="selected">--Select State--</option><?php
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['state_id']; ?>"><?php echo $row['state_name']; ?></option>
<?php
}
}
?>

获取城市

    <?php
include('db_conn.php');
if($_POST['id'])
{
$id=$_POST['id'];

$stmt = $conn->prepare("SELECT * FROM cities WHERE state_id=:id");
$stmt->execute(array(':id' => $id));
?><option selected="selected">--Select City--</option>
<?php while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['city_id']; ?>"><?php echo $row['city_name']; ?></option>
<?php
}
}

?>

和 Ajax 数据

<?php
//Include database configuration file
include('db_conn.php');

if(isset($_POST["country_id"]) && !empty($_POST["country_id"])){
//Get all state data
$query = $conn->query("SELECT * FROM states WHERE country_id = ".$_POST['country_id']." AND status = 1 ORDER BY state_name ASC");

//Count total number of rows
$rowCount = $query->num_rows;

//Display states list
if($rowCount > 0){
echo '<option value="">Select state</option>';
while($row = $query->fetch_assoc()){
echo '<option value="'.$row['state_id'].'">'.$row['state_name'].'</option>';
}
}else{
echo '<option value="">State not available</option>';
}
}

if(isset($_POST["state_id"]) && !empty($_POST["state_id"])){
//Get all city data
$query = $conn->query("SELECT * FROM cities WHERE state_id = ".$_POST['state_id']." AND status = 1 ORDER BY city_name ASC");

//Count total number of rows
$rowCount = $query->num_rows;

//Display cities list
if($rowCount > 0){
echo '<option value="">Select city</option>';
while($row = $query->fetch_assoc()){
echo '<option value="'.$row['city_id'].'">'.$row['city_name'].'</option>';
}
}else{
echo '<option value="">City not available</option>';
}
}
?>

最佳答案

您插入选项值。

echo '<option value="'.$row['city_id'].'">'.$row['city_name'].'</option>';

在本例中为 city_id

如果你想要名字,将它设置为值:

 echo '<option value="'.$row['city_name'].'">'.$row['city_name'].'</option>';

关于php - 国家/地区下拉列表将 ID 而不是名称(字符串)插入数据库(mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44147808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com