0

我有这个表格:

<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

4 回答 4

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 语句的想法。

对于许多选项,您可以使用它:

    <?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>
于 2012-09-22T18:49:15.067 回答
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还没有设置在这个表格中。你也需要逃避它

于 2012-09-22T18:44:47.370 回答
0

将此表单放入字符串 ($form) 中并执行此操作

$form = str_replace(" value='".$id."'>"," value='".$id."' selected>", $form);

echo $form;

您可以记住 cookie 中的 $id。

于 2012-09-22T18:43:44.887 回答
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>

顺便说一句:你可能想看看这个。

于 2012-09-22T18:50:18.637 回答