PHP返回选中字段以下拉框

时间:2012-05-14 07:02:40

标签: php html forms

我在使用我的php表单时遇到问题,我从数据库中查询信息现在工作正常我只想在用户单击“提交”时返回表单重新加载时所选的值。我一直想让它彻夜不眠。

更清楚的例子。

---选择---

--- Apple ---

---香蕉---

如果他们在页面重新加载时选择了banana并点击了sumbit,那么已经选择了字段banana。这里的代码如下。经过45分钟的战斗“解析错误:语法错误,意外”。我准备把头发拉出来,所以我希望你们能伸出援手。

echo '<option value="'. $row['free'] .'" "'. $free==$row['free'] ? .'" selected=':'>$"'.$row['free'].'"</option>';

由于

5 个答案:

答案 0 :(得分:1)

echo '<option value="'. $row['free'] .'" "'. $free==$row['free'] ? /*.*/ '" selected=':'>$"'.$row['free'].'"</option>';

只是评论出来,所以你可以看到它。

答案 1 :(得分:1)

我们假设您在表单中有一个select元素

<form action="" method="post">
       <select name ="fruits">
              <option value="apple">Apple</option>
              <option value="banana">Banana</option>
              <option value="orange">Oranges</option>
              <option value="mango">Mangoes</option>
       </select>
       <input type="submit" name="submit"/>
</form>

如果我理解你是正确的,你想在用户点击提交按钮时将所选值显示给用户,将其置于php代码的顶部。

<?php 
//This will check if form is submitted then fetch the value from select element else assign null
$value = isset($_POST['submit']) ? $_POST['fruits'] : NULL; 
?>

并将所有<option>更改为

<option value="apple" <?php echo ($value == 'apple') ? 'selected' : ''; ?>>Apple</option>
<option value="banana" <?php echo ($value == 'banana') ? 'selected' : ''; ?>>Banana</option>
<option value="orange" <?php echo ($value == 'orange') ? 'selected' : ''; ?>>Oranges</option>
<option value="mango" <?php echo ($value == 'mango') ? 'selected' : ''; ?>>Mangoes</option>

答案 2 :(得分:0)

echo '<option value="' . $row['free'] . '"' . ($free == $row['free'] ? ' selected="selected"' : '') . '>' . $row['free'] . '</option>';

这应该有效:)

答案 3 :(得分:0)

我建议你简化你的sintax并使其首先可读。

$selected = '';
if($free==$row['free']){ $selected=' selected'; }

echo "<option value='{$row['free']}'{$selected}>{$row['free']}</option>";

答案 4 :(得分:0)

不确定该字符串是如何陷入如此混乱的......如果您在呈现HTML时退出PHP模式,则更清楚(在我的选择中)...如下所示:

?>
<option value="<?php echo $row['free']; ?>" <?php if($free == $row['free']) echo 'selected="selected"'; ?>><?php echo $row['free']; ?></option>
<?php