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

このフォームを文字列 ($form) に入れて、これを行います

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

echo $form;

$id は Cookie に記憶できます。

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

本当に最善の解決策ではありませんが、これがどこに向かっているのか本当にわかりません。

<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 に答える