2016-05-26 36 views
1

私のメインページには、別のページからJqueryのload()を使用してコンテンツをロードするコンテンツボックスがあります。すべてがうまくいっていて、素早く素敵です。 次に、小さなフィルタリング機能を追加することです。変数はGET変数としてメインページ(snappage.php)に送られます。しかし、SQLクエリのPHPは別のページにあります(つまり、すべてsnaps.php)。私はあなたに私のコードをお見せしましょう:Jquery load()は別のページから変数を取得します

snappage.php

<?php 
     require "database/database.php"; 
     session_start(); 
     if($_GET['country']) { 
      $country = $_GET['country']; 
     } 
    ?> 
<section class="main-snap-page-wrapper"> 
     <nav class="all-snaps-countries"> 
      <h4>Filter by country</h4> 
      <ul> 
       <?php 
        //GET COUNTRY FLAGS 
        $flagsql = mysql_query("SELECT * FROM countries"); 

        while($getflag = mysql_fetch_array($flagsql)) { 
         $countryname = $getflag['countryname']; 
         $flag = $getflag['countryflag']; ?> 
       <li> 
        <a href="snappage.php?country=<?php echo $countryname?>"> 
         <img src="<?php echo $flag?>" alt=""> 
         <h5><?php echo $countryname?></h5> 
        </a> 
       </li> 
       <?php } ?> 
      </ul> 
     </nav> 
     <div class="all-snaps-page"> 
      <nav class="main-page-tabs-wrapper"> 
       <ul class="main-page-tabs" id="<?php echo $country?>"> 
        <li class="active-tab"><a href="all-snaps">All</a></li> 
        <li><a href="female-snaps">Female</a></li> 
        <li><a href="male-snaps">Male</a></li> 
       </ul> 
       <div class="main-snaps-content"></div> 
      </nav> 
     </div> 
</section> 

<script type="text/javascript"> 
    $('.main-snaps-content').load('all-snaps.php'); 

    $('.main-page-tabs li').on('click', function() { 
     $('.main-page-tabs li').removeClass('active-tab'); 
     $(this).addClass('active-tab'); 

     var page = $(this).find('a').attr('href'); 
     $('.main-snaps-content').load(page + '.php'); 
     return false; 
    }); 
</script> 

次は私がすなわち、すべての-snaps.phpから.main-スナップ・コンテンツにロードするページです:

すべてのスナップ.PHP

<?php 
require "database/database.php"; 
session_start(); 

if($_GET['country']) { 
    $country = $_GET['country']; 
    $newsql = mysql_query("SELECT * FROM users JOIN fashionsnaps ON users.id = fashionsnaps.userid WHERE country = '$country' ORDER BY snapid ASC"); 
} 
else { 
    $newsql = mysql_query("SELECT * FROM fashionsnaps ORDER BY snapid ASC"); 
} 
?> 
<ul class="snaps-display"> 
<?php 
    //GET SNAPS BY ID 
    while ($getnew = mysql_fetch_array($newsql)) { 

     $newsnappics = $getnew['snappic']; 
     $newsnapid = $getnew['snapid']; 
     ?> 
    <li> 
     <a href="snap.php?id=<?php echo $newsnapid?>"> 
       <img src="<?php echo $newsnappics?>" alt=""> 
     </a> 
    </li> 
<?php } ?> 
</ul> 

は、だから私はここに達成したいものをsnappage.phpにある.main-スナップコンテンツにすべての-snaps.phpからのフィルタリングコンテンツをロードすることです。

この$ country変数はどこに送信しますか?どのページで取得すればよいですか?

+0

'mysql_ *が'今 'PHP7のよう推奨されませんのでご注意ください'セキュリティの問題のために。 'mysqli_ *'や 'PDO'拡張に切り替えることをお勧めします。 –

+0

Pedroさん、ありがとうございます。私はこれを私のPCでテスト用にのみ使用しています。一度私がライブに行くとこれを念頭に置いておきます。 – davidb

答えて

1

jQuery loadでこれを簡単に行うことができます。 snappage.phpで

$(".main-snaps-content").load("all-snaps.php?" + $.param({country: "<?php echo htmlentities($country); ?>"})); 

更新:あなたはPHP GET/$country VARのより良い取り扱いをする必要があります

。あなたはこのようsnappage.phpの上部に、それを初期化することができます:

$country = (isset($_GET['country'])) ? $_GET['country'] : ''; 

次に、あなたのJSは条件が必要になります。

var country = "<?php echo htmlentities($country); ?>"; 
if (country) { 
    $(".main-snaps-content").load("all-snaps.php?" + $.param({country: country})); 
} else { 
    $(".main-snaps-content").load("all-snaps.php"); 
} 
+0

こんにちはBitwise、遅れて返信申し訳ありません。ありがとう、それは今うまくいっています! – davidb

+0

問題ありません!そして、素晴らしい! :) –

関連する問題