Jquery load()从另一个页面获取变量

时间:2016-05-26 21:31:24

标签: php jquery

在我的主页面上,我有一个内容框,我从另一个页面使用Jquery的load()加载内容。一切都很好,它很快,很好。 接下来我要做的是为它添加一个小的过滤功能。该变量作为GET变量发送到主页面(snappage.php)。然而,sql查询的php在另一个页面中(即all-snaps.php)。让我告诉你我的代码:

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-content的页面,即all-snaps.php:

全snaps.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>

所以我想在这里实现的是将来自all-snaps.php的过滤内容加载到snappage.php上的.main-snaps-content。

我应该在哪里发送此$ country变量?我应该在哪个页面上检索它?

1 个答案:

答案 0 :(得分: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");
}