2016-05-26 7 views
1

На моей главной странице У меня есть окно с содержимым, в котором я загружаю контент с помощью загрузки Jquery() с другой страницы. Все работает отлично, и это быстро и приятно. Следующее, что я хочу сделать, это добавить к нему небольшую фильтрующую функцию. Переменная отправляется на главную страницу (snappage.php) в качестве переменной GET. Однако php для SQL-запроса находится на другой странице (т. Е. All-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> 

Следующая страница, которую я загрузить в .main-шнапс-контента из т.е. все-snaps.php:

все-защелками .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> 

Так что я хочу добиться здесь, чтобы загрузить отфильтрованное содержимое из всех-snaps.php в .main-шнапс-контента, который находится на snappage.php.

Куда я могу отправить эту переменную страны $? На какой странице я должен ее получить?

+0

Пожалуйста, обратите внимание, что 'mysql_ *' теперь устаревший 'PHP7 'из-за проблем с безопасностью. Предлагается переключиться на расширения mysqli_ * или 'PDO'. –

+0

Спасибо Педро, я использую это на своем ПК только для тестирования. Это будет иметь в виду, когда я пойду вживую. – davidb

ответ

1

Вы можете сделать это довольно легко с помощью jQuery load.

В snappage.php:

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

Update:

Вам нужно лучше обработку PHP GET/$country вар. Вы можете инициализировать его в верхней части 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

Эй Побито, извините за запоздалый ответ. Спасибо, теперь он работает нормально! – davidb

+0

Нет проблем! И здорово! :) –

Смежные вопросы