我在使用PHP选择选项值时遇到麻烦
将显示州和城市的多个选择框。 jQuery加载为数据库的ajax方法。而且我需要达到“期权价值”内在价值。我将在下面的代码中显示问题。
<?php
function load_country() {
include 'includes/db.php';
$sql = "SELECT * FROM ilce ORDER BY name";
mysqli_set_charset($con, "UTF8");
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
$output .= '<option name="' . $row['name'] .'" value="' .
$row["ilce_id"].'">' . $row["name"]. '</option>';
}
return $output;
}
?>
<select class="form-control" name="state" id="state">
<option>Choose State</option>
<?php
echo load_country();
?>
</select>
<?php
$state = mysqli_real_escape_string($con, $_POST['state']);
echo $state;
?>
<option value="5">New York</option>
$state is showing for me Example : "id" => 5
因此,我想达到“纽约”的内在价值。 请帮我 谢谢
答案 0 :(得分:0)
<option>
元素的文本内容不会发布到服务器,只会发布其value
。
如果要将所选状态插入数据库(例如在用户表中),则可能只需要插入数字状态ID并在需要显示信息时将两个表连接起来。
或者,您可以获取由其ID索引的所有状态的数组,然后引用该数组:
while ($row = mysqli_fetch_array($result)) {
$allStates[$row['ilce_id']] = $row['name'];
}
$stateId = $_POST['state'];
$thisState = $allStates[$stateId];
echo $thisState;
或者只需根据其ID提取所需的一行。
一种不太理想的解决方案是将<option>
value
设置为该行的名称而不是其ID:
$output .= '<option value="' . $row["name"] . '">' . $row["name"] . '</option>';
但这似乎违反了使用关系数据库的目的。