我有以下代码,基本上是一个下拉菜单。当用户选择一个选项并提交选择时,将回显该值。选项值从MySQL表中获取。
这是我的代码。
<form name="hello" id="hello" method="post" action="chooser.php">
<select name="primaryCatResult" id="primaryCatResult" >
<?php
while ($result = $sqlUpdatePrimary->fetch()) {
$primary_category = $result['primary_category'];
?>
<option
value = "<?php echo $primary_category; ?>">
<?php echo $_POST['primary_category'] == $result['primary_category'] ?'selected="selected"' : '' ?>
<?php echo $primary_category; ?></option>";
<?php
}
?>
</select>
<input type="submit" type="submit"/>
</form>
<?php
//Record and display selection
if(isset($_POST['primaryCatResult'])){
echo $_POST['primaryCatResult'];
}
else {
echo 'Choose a primary category';
}
上面的表单按预期工作,但我希望在选择该选项并提交表单后,我希望下拉菜单中的选择保持选中状态。
我不相信这行代码:
<?php echo $_POST['primary_category'] == $result['primary_category'] ?'selected="selected"' : '' ?>
错误日志文件中没有显示错误
答案 0 :(得分:0)
您的<option>
关闭后才能输出是否已选中。在开始>
标记中的结束<option>
之前移动所选内容。您还需要使用字段名称(primaryCatResult
)代替列名primary_category
。
应该是这样的:
<option value = "<?php echo $primary_category; ?>"
<?php echo $_POST['primaryCatResult'] == $result['primary_category'] ? 'selected="selected"' : '' ?>
>
<?php echo $primary_category; ?></option>";
答案 1 :(得分:0)
试试这个
<option value="<?php echo $primary_category; ?>"
<?php echo $_POST['primary_category'] == $result['primary_category'] ? 'selected' : '' ?>>
<?php echo $primary_category; ?></option>";
您在价值后关闭了该选项。不确定你的逻辑本身是否正常工作。
此外,您可以selected
而不是selected="selected"
答案 2 :(得分:0)
该概念应该有效,除了代码具有提取“选定”语句的额外括号。
<?php
while ($result = $sqlUpdatePrimary->fetch()) {
$primary_category = $result['primary_category'];
?>
<option value = "<?php echo $primary_category; ?>"
<?php echo ($_POST['primary_category'] == $result['primary_category'] ? " selected='selected'>" : ">") ?> // close bracket.
<?php echo $primary_category; ?></option>";
<?php
}
?>