0

index.php ページに 2 つのフォームがあります。

<form action="search_results.php" method="get" id="search_housing_area">
  <input type="text" name="rent_housing" />
  <inout type="submit" name="search_housing" value="" />
</form>

<form action="search_results.php" method="get" id="search_rooms_area">
  <input type="text" name="rent_rooms" />
  <inout type="submit" name="search_rooms" value="" />
</form>

これらのフォームのいずれかを送信すると、URL は次のように表示されます。

http://www.domain.com/search_results.php?rent_housing=1234&search_housing=

また

http://www.domain.com/search_results.php?rent_rooms=1234&search_rooms=

search_results.php ページには、#housing_results と #rooms_results という 2 つの div があります。どちらもデフォルトでは非表示になっています。GET 変数「search_housing」が存在する場合は div#housing_results を表示し、GET 変数「search_rooms」が存在する場合は div#rooms_results を表示したいと考えています。

特定の GET 変数が URL に存在する場合、jQuery を使用して特定の div ショーを作成するにはどうすればよいですか?

4

4 に答える 4

6
<?php
 $disp_div=0;
if(isset($_GET['search_housing']))
{
   $disp_div=1;
}
else if(isset($_GET['search_rooms']))
{
  $disp_div=2;
}
?>

Jクエリコード

$(document).ready(function(){

var show=<?php echo $disp_div; ?>;

 if(show==1)
 {
   $('#div_search_housing').show();
 }
else if(show==2)
 {
   $('#div_search_rooms').show();
 }
});
于 2012-07-14T05:48:03.830 に答える
2

を使用window.locationして検索できますquery string

var winLoc = window.location.search;
//will output ?rent_rooms=1234&search_rooms=

&? を削除し、記号の文字列を分割して、配列にします。

winLoc = winLoc.replace('?', '').split('&');

var  ourStr = winLoc[1].replace('=', '');

switch(ourStr){
  case 'search_rooms':
    $('.switch').css('backgroundColor', 'red');
    break;
  case 'search_housing':
    $('.switch').css('backgroundColor', 'blue');
    break;       
}

例として、定義済みの文字列を使用した動作中の jsFiddle を次に示します。

于 2012-07-14T05:52:22.660 に答える
1

これは純粋な JS ソリューションです。他の回答で述べたように、PHP を使用してこれを行う方法もあります。

function stuff()
{
    var queryPairs = window.location.href.split('?').pop().split('&');
    for (var i = 0; i < queryPairs.length; i++)
    {
        var pair = queryPairs[i].split('=');
        if (pair[0] == 'search_housing')
        {
            $('#rooms_results').hide();
            $('#housing_results').show();
            return;
        }
        if (pair[0] == 'search_rooms')
        {
            $('#housing_results').hide();
            $('#rooms_results').show();
            return;
        }
     }
     // None of the two options exist in the query
}
于 2012-07-14T05:47:48.103 に答える
0

純粋な JS を使用できます。

function getParameterByName(name)
{
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.search);
    if(results == null)
    return "";
    else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}  

ここから

したがって、あなたの場合は次のようになります。

if (getParameterByName('search_housing').length > 0) { ... } 
if (getParameterByName('search_rooms').length > 0)  { ... } 
于 2012-07-14T05:52:23.030 に答える