记住选择选项

时间:2012-09-22 18:38:49

标签: php

我有这样的表格:

<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");

我可以添加什么,以便用户在点击“提交”之前选择的选项会在重新打开时返回?谢谢!

4 个答案:

答案 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.