我有一个从 mysql 动态填充的下拉列表 当我将信息保存到mysql时,它不保存下拉列表的值。 如何设置动态下拉列表的选定值 这是用于填充下拉列表的代码。 如何在 php 中设置更改时选定的值
echo "<option value=\"" . utf8_encode($row['school_name']) . "\">" . utf8_encode($row['school_name']) . "</option>";
我在使用此示例设置正确格式时遇到问题
<option value="My School"<?php if ($row[school_name] == 'My School') echo ' selected="selected"'; ?>>My School</option>
其中“我的学校”应该是从数据库填充的值
好的
<select id="school_name" "name="school_name" style="width:200px;" name="school_name">
<option selected="">Select Province School</option>
</select>
然后我用以下内容填充下拉列表。
$sql="SELECT * FROM ppSD_schools where province_code ='".$_POST['c_id']."'";
$res = $conn->query($sql);
$num_rows = $res->num_rows;
if($num_rows > 0) {
echo "<option value=''>------- Select --------</option>";
while($row = $res->fetch_assoc())
{
?>
echo "<option value=\"" . utf8_encode($row['school_name']) . "\">" . utf8_encode($row['school_name']) . "</option>";
}
但是当我选择另一所学校时。它不会将所选值保存到 MySql 我的猜测是它不会将值标记为已选择,因为它会动态填充 我现在必须更改代码,因此当我选择它时,它必须标记为已选择
最佳答案
我将使用重复函数将值与行值进行比较
<?php
function selected($a, $b) {
return ($a === $b) ? ' selected' : '';
}
?>
<option name="school" value="My School" <?= selected($row["school_name"], "My School"); ?>>My School</option>
<option name="school" value="Your School" <?= selected($row["school_name"], "Your School"); ?>>Your School</option>
关于php - 下拉菜单和 MySQl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50554866/