0

メニューバーの上部にクイック検索タブがあります。入力テキストボックス (検索するコンテンツ用) とボタンがあります。このユーザーが現在ボックスに入力してボタンをクリックすると、ユーザーは実際の検索ページに移動します。

この検索ページでは、より高度な検索フィルターのセットがページの上部 (送信ボタン付き) に表示され、検索結果が下に表示されます。

私がやりたいことは、ユーザーがそのページの送信ボタンを押さなくても、検索ページの読み込み時に基本検索の結果を (他のページから、メニューバーを使用して) 表示することです。これにより、ユーザーの時間が節約されることが期待されます (おそらく、高度な検索は必要ありませんでした)。注: 検索するテキストに関する高度なフィルター テキスト ボックスは、基本検索ボタンをクリックしてユーザーが検索ページに移動したときに、基本検索テキスト ボックスのコンテンツによって自動入力されます。

ただし、送信ボタンを押していないため、$_POST["searchText"] を if 条件 (ユーザーがテキスト ボックスにテキストを入力した場合にのみ検索結果を表示する) のパラメーターとして使用して、検索結果を表示することはできません。 . 代わりに、次のようなユーザーを使用したいと思います。

!is_null(検索テキスト.値)

しかし、明らかにこれは間違った構文です/存在しません。HTML 入力 searchText から PHP $variable にコンテンツを取得するための提案された解決策はありますか?

4

3 に答える 3

1

POST/GET を使用できなかった理由がよくわかりません。ユーザーがページ X にいて、メニューバーに検索値を入力すると、GET/POST を介して渡された検索クエリを含む検索ページに移動します。

より高度な検索フィルター オプションを表示する (または検索結果に加えて高度なオプションを表示する) のではなく、このクエリですぐに検索を実行して結果を表示するようにサーバー側のロジックを変更するかどうかは、ユーザー次第です。検索機能を開始するために、検索ページからサーバーへの 2 回目の通信は必要ありません。

于 2013-11-08T16:49:21.883 に答える
0

$_REQUEST["name"]POSTと の両方を置き換えます。GET

<form action="#" method="POST">
<input type="text" name="one">
<input type="submit" />
</form>
<form action="#" method="GET">
<input type="text" name="one">
<input type="submit" />
</form>

<?php
if(isset($_REQUEST["one"])){echo $_REQUEST["one"];}
?>
于 2013-11-08T17:04:30.887 に答える
0

したがって、高度な検索ページでは、次のことを検討しています。

<input type='text' name='searchText' value='<?php echo (isset() ? htmlentities($_POST['searchText'], ENT_QUOTES) : ''; ?>' />

htmlentities は正しいと思いますが、間違っている可能性があります。

エコーは実際には 3 進数です。おそらくisset()あなたが探しているものと同等だと思います。基本的に、$_POST['searchText']が設定されているかどうかを確認し、その内容をエコーするか、何もエコーしません。

$_POST$_GETはグローバル変数なので、 でチェックするだけで済みisset()ます。ただし、独自の配列については、 で確認するarray_key_exists('key', $array)前に で確認する必要がありますisset($array['key'])

于 2013-11-08T16:51:24.067 に答える