検索BOXにキーワードを入力し、となりの都道府県一覧のリストボックスから例として"東京"を選択して検索するとします。


次のページに移動したときにリストボックスに前ページで選択した東京が既に選ばれている状態にするにはどのように記述したらよいでしょうか。

できればPHPで作成するものとします。
簡単にできるのであればこの限りではありませんが。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/12/28 15:53:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント10pt

FORM で「東京」のデータを受け取っているのであれば、

次のページで

<select name="city">
 <option value="東京" selected>東京</option>
</select>

としておけばいいのでは?

http://www.htmq.com/html/option.shtml

id:plugbot

最終的にそうなればいいのですが、そこまで持っていくためのプロセスを質問していました。

2006/12/28 15:51:44
id:kazunori No.2

回答回数11ベストアンサー獲得回数0

ポイント24pt

http://www.sakura-pc.jp/php/cookie.shtml

cookieを使ってクライアント側に保存・読み出しし、選択状態にするのはいかがでしょうか。

id:ToMmY No.3

回答回数656ベストアンサー獲得回数19

ポイント46pt

前ページ結果はPHPのCGIでGetするんですよね?

それでしたらデフォルトで選択されている都市を前の結果で条件分岐すればいいのではないでしょうか

http://www.sky.sannet.ne.jp/masapine/java_link2.html

GOを押した時に移動先のページのPHPからアドレスバーの値をGetしてそれを反映させればいいとおもいます。

PHPやHTMLがどの程度おできになるのかわかりませんが、この程度の説明でよろしいでしょうか

  • id:tobeoscontinue
    書いてみました。
    <?php
    function html_list_box($name, $list, $var, $row = 5)
    {
    $select = (! empty($var[$name])) ? $var[$name] : 0;
    $contents = '';
    foreach ($list as $value => $option) {
    $selected = ($value == $select) ? 'selected' : '';
    $contents .= '<option value="'.$value.'"'.$selected.'>'.$option.'</option>'."\n";
    }
    return '<select size="'.$row.'" name="'.$name.'" multiple>'.$contents.'</select>';
    }

    $city = array("埼玉","群馬","千葉","福島","東京","神奈川","長野");
    $list_box = html_list_box("city", $city, $_POST);

    echo <<<EOS
    <html><body><form action="{$_SERVER[SCRIPT_NAME]}" method="POST">
    <input type="text" name="query" size="20">
    {$list_box}
    <hr>
    <input type="submit" value="検索" name="send">
    </form></body></html>
    EOS;
    ?>

    配列$cityのものでリストボックスのhtmlを返します。
    formでGETが使われるのかPOSTが使われるのは分からないので引数で
    渡していますが決まっているなら直接書いた方が楽でしょう。

    大事なことはGETにしろPOSTにしろCOOKIEにしろ、
    その値を直接使ってはならないということでしょう。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません