0

検索操作用の HTML ページがあります。

ユーザーが検索条件を入力して検索ボタンをクリックすると、検索結果が同じページに表示されます。

ただし、検索結果ページでは、ユーザーが入力した検索フィールドの値は、同じページへの更新/リダイレクトによりクリアされます。

フィールド値を取得して表示するにはどうすればよいですか?

4

3 に答える 3

0

私が思う最良のオプションは、検索フォームと結果ページをマージし、次のようにフォームをそれ自体に送信することです。

<form method="get" action="">
    <input type="text" name="search" value=""/>
    <input type="submit" value="Submit"/>
</form>

このように、検索で使用するフォーム送信を使用し、value=""検索フィールドの属性を同じ値にすることで、検索されたアイテムに引き続きアクセスできます。PHPでは、これは次のようになります。

<form method="get" action="">
    <input type="text" name="search" value="<?php echo $_GET["search"]; ?>"/>
    <input type="submit" value="Submit"/>
</form>

それでも中間ページが必要な場合は、非表示の入力フィールドを使用します。

<input type="hidden" name="searched"/>

ユーザーにリダイレクトするフォームを送信してもらう場合。

于 2012-06-28T06:02:31.403 に答える
0

あなたが探しているのは、GET 文字列変数を使用して検索フォームから値のペアを取得する方法だと思います。locationオブジェクト プロパティにアクセスする.searchと、クエリ文字列 ( GETURL セグメント) があればそれが得られます。

例えば:

<form method="get">
<p>
<input type="text" name="q1" value="Search Criteria 1">
<input type="text" name="q2" value="Search Criteria 2">
<input type="text" name="q3" value="Search Criteria 3">
<button type="submit">Submit Search</button>
</p>
</form>

GETURL に何が含まれているかを確認するために、次のことを試すことができます。

<script type="text/javascript">
(function(){
    var getpairs = location.search.substring(1).split('&'),
        pairs = {},
        i = getpairs.length,
        pair;

    while (i--) {
        pair = getpairs[i].split('=');
        pairs[pair[0]] = decodeURI(pair[1]) || true;
    }

    if (pairs.length) {
        console.log(pairs);
    } else {
        console.log('Nothing in GET string.');
    }
})();
</script>

http://jfcoder.com/test/get.html

于 2012-06-28T06:48:15.930 に答える