ホームページ >バックエンド開発 >PHPチュートリアル >検索ボックスを使わずにURLを蓄積する方法を探しています
ブラウザを検索
Index.php?chid=4&ccid18=197 リンクを定義するだけです
ページを提供します
さらに詳しく説明すると、2 つの JS を組み合わせて検索クエリを作成しました
&ccid18=196
この接続はクエリ フィールドです
したがって、クエリ条件が重ねられるたびに、クエリ条件が 1 つ増え、クエリはより詳細になります
http://www.lyfcw.com/mobile/search.php?chid=4&ccid1=207&ccid17=166 ページは次のとおりです。ここ。ドロップダウン ボックスで 1 つを選択すると、上のリストには 1 つしか表示されなくなり、複合検索方法を使用する必要があります
つまり、エリアで Jianxi を選択すると、他のオプションを選択すると Jianxi が表示されます。選択肢はまだ存在します
1 つ以上の c726a8da2e1b0a50980b1ad4157a77d3 を作成し、$_GET の必要な値を書き留めます
クライアントは、js を使用して各入力タイプを組み合わせて送信します (送信は必ずしも必要ではありません)
別の方法PHP は js 変数を直接書き込み、値は現在の URL であり、js が処理されます。 + (window.location.href.indexOf('?') ? '&':'?')+ ccid の名前 + '=' + ccid の値)
'http://'.$_SERVER['HTTP_HOST '].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
これが現在の URL です
ヒーローの皆さん、ありがとうございます
これが現在の URL です
次に、変数を追加するだけです
それは簡単です
ジャンプ URL = window.location.href + (window.location.href.indexOf('?') ? '&':'?')+ ccid 名 + '=' + ccid の値)
テストしましたが、まだ正しく理解できません
http://www.lyfcw.com/mobile/ を教えてください。 search.php ?chid=4 テストページはこれです。地域の価格、用途、ステータスを同時に選択して組み合わせて検索できることが条件です。エリアを選択し、目的を選択するとエリア選択がなくなりました
今はこんな感じです
欲しいものはこんな感じです
つまり、上記の4つのフィルタ値です同時にフィルタリングすることはできません。同時にフィルタリングしたい場合は、アクセス アドレスの重ね合わせ (&ccid12=3032&ccid1=207&ccid17=164) を使用する必要があります。オーバーレイの方法がわかりません
小さな例を示しますので、見てください
<?php $base_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?';parse_str($_SERVER['QUERY_STRING'], $query_strings);foreach(array('ccid1', 'ccid2', 'ccid3', 'ccid4') as $ccid) { $strings = $query_strings; unset($strings[$ccid]); $strings[$ccid] = ''; ${$ccid.'_url'} = $base_url.http_build_query($strings); } ?><a href="<?php echo $ccid1_url; ?>1" target="_self">ccid1</a><a href="<?php echo $ccid2_url; ?>2" target="_self">ccid2</a><a href="<?php echo $ccid3_url; ?>3" target="_self">ccid3</a><a href="<?php echo $ccid4_url; ?>4" target="_self">ccid4</a>
解決策を提供します。既存のプログラム コードを変更する必要はありません
検索の先頭に次のコードを追加するだけです.php
if(! $_GET) { //首次进入清楚 cookie foreach($_COOKIE as $k=>$v) setcookie($k, '');}else { //将传入的参数保存于 cookie 中 foreach($_GET as $k=>$v) setcookie($k, $v); //取回上次保存的参数 $_GET = array_merge($_COOKIE, $_GET); //$_GET 中就含有了诸复合查询条件了}テスト 例
<?phpif(! $_GET) { foreach($_COOKIE as $k=>$v) setcookie($k, '');}else { foreach($_GET as $k=>$v) setcookie($k, $v); $_GET = array_merge($_COOKIE, $_GET); print_r($_GET);}?><p> </p><label><a href="?chid=4&ccid17=164" >5000元以下</a></label><label><a href="?chid=4&ccid17=166" >5000-7000元</a></label><label><a href="?chid=4&ccid17=167" >7000-10000元</a></label><label><a href="?chid=4&ccid17=168" >10000-15000元</a></label><label><a href="?chid=4&ccid17=169" >15000元以上</a></label><p> </p><label><a href="?chid=4&ccid12=3" >普通住宅</a></label><label><a href="?chid=4&ccid12=2" >公寓</a></label><label><a href="?chid=4&ccid12=3032" >商住</a></label><label><a href="?chid=4&ccid12=3023" >写字楼</a></label><label><a href="?chid=4&ccid12=3024" >商铺</a></label><label><a href="?chid=4&ccid12=4" >别墅</a></label><label><a href="?chid=4&ccid12=1" >四合院</a></label><label><a href="?chid=4&ccid12=3058" >仓库</a></label><label><a href="?chid=4&ccid12=5" >其他</a></label>