我有这样的表格:
<form method='POST' action='update_ads.php'>
<select size='1' name='type'>
<OPTION value=''></OPTION>
<OPTION value='1'>Open</OPTION>
<OPTION value='0'>Closed</OPTION>
</select>
<input type='submit' value='Save'>
</form>
和这个与之关联的PHP文件:
$id = $_POST['id'];
$type = addslashes($_POST['type']);
$query = mysql_query("UPDATE ads SET type='$type' where id=$id");
我可以添加什么,以便用户在点击“提交”之前选择的选项会在重新打开时返回?谢谢!
答案 0 :(得分:1)
你可以这样做:
<?php
if (isset($_POST['id']) && ((int) $_POST['id'])) != 0) {
$id = $_POST['id'];
}
//connect to db
//get the responce of the query "SELECT `type` FROM `ads` WHERE `id` = $id"
//put it in a variable named $type
?>
<form method="POST" action="">
<select size='1' name='type'>
<option value="" <?=($type == '') ? 'selected="selected"' : ''?>></option>
<option value="1" <?=($type == 1) ? 'selected="selected"' : ''?>>Open</option>
<option value="0" <?=($type == 2) ? 'selected="selected"' : ''?>>Closed</option>
</select>
</form>
编辑:如果您选择的选项不多,那么这很好,否则您应该像foreach语句一样使用somethink。
对于许多选项,您可以使用它:
<?php
$options = array('Open' => 1, 'Closed' => 0, 'Select an option' => ''); ?>
<form method="POST" action="">
<select size='1' name='type'>
<?php
foreach($options as $label => $option) {
if ($type == $option) {
$checked = 'selected="selected"';
}
else {
$checked = '';
}
?>
<option value="<?=$option?>" <?=$checked?>><?=$label?></option>
<?php
}
?>
</select>
</form>
答案 1 :(得分:0)
将此表单放在字符串($ form)中并执行此操作
$form = str_replace(" value='".$id."'>"," value='".$id."' selected>", $form);
echo $form;
您可以记住Cookie中的$ id。
答案 2 :(得分:0)
当用户加载页面时,您必须检查数据库中的当前选择。
然后根据选择更改html:
<OPTION value='1' selected='selected'>Open</OPTION>
<OPTION value='0'>Closed</OPTION>
或
<OPTION value='1'>Open</OPTION>
<OPTION value='0' selected='selected'>Closed</OPTION>
ID
尚未设置为此表单。你也需要逃避
答案 3 :(得分:0)
不是最好的解决方案,但它并不真正知道这是怎么回事。
<select size="1" name="type">
<option value=""></option>
<option value="1"<?= $_POST['type']==1 ? " selected" : ""?>></option>
<option value="0"<?= $_POST['type']==0 ? " selected" : ""?>></option>
</select>
BTW:你可能想看看this.