从使用php变量构建的ul列表中检索选择

时间:2012-10-04 01:25:14

标签: jquery

我在一个div中有一个UL列表,使用php从mysql中检索数据。这是代码:

<div class="sidebar_section">
<h1>Browse Categories</h1>
<?php
include('config.php');
//Connect to mysql server
...
//Select database
...
$categories_sql = "SELECT * FROM tbl_catagory";
$categories_query = mysql_query($categories_sql) or die (mysql_error());
$rsCategories = mysql_fetch_assoc($categories_query);
?>
<form>
<ul>
<?php do { 
?>
<li><a href = "#" id="cat_<?php echo $rsCategories['ID']; ?>"><?php echo $rsCategories['CatagoryName']; ?></a></li>
<?php
} while ($rsCategories = mysql_fetch_assoc($categories_query));
?>
</ul>
</form>
</div>

如何将用户选择到另一个.php文件中,以便我只显示与此类别相关联的产品?当然,在另一个文件中我会做SELECT * FROM表WHERE categoryname =用户选择的任何内容。

1 个答案:

答案 0 :(得分:0)

对此的答案变化很大。

首先,我将尝试用我能想到的最简单的方法回答:

使锚点的href像这样:

<li><a href="category.php?catId=<?php echo $rsCategories['ID']; ?>" 
       id="cat_<?php echo $rsCategories['ID']; ?>">
    <?php echo $rsCategories['CatagoryName']; ?></a></li>

然后只需创建一个category.php脚本,在该脚本中使用$ _GET数组中的id。

<?php
$categoryId = mysql_real_escape_string($_GET['catId']);
$products_sql = "SELECT * FROM ebook WHERE category = '$categoryId'";
//proceed with the rest
?>

由于您正在使用列表中的链接并且您正在使用#as href,我将考虑您可能希望使用AJAX。这是完成所有这一切的一种方式。

首先:让我们为这些列表提供一个课程,我们将其称为&#34; category-choose&#34; (糟糕的命名,对不起,只要你想改变它)。这将允许单个jQuery .click或.live(&#39; click&#39;,...)就足够了,而不必为每个id添加一个事件。

<li><a href="#<?php echo $rsCategories['ID']; ?>" 
       class="category-choose">
    <?php echo $rsCategories['CatagoryName']; ?></a></li>

第二:为了让我们感到轻松,让我们使用href作为&#34;#&#34; (其中只是一个表示id的数字)。现在我们可以执行以下jQuery代码:

$(document).ready(function() {
    $('.category-choose').live('click', function () {
        var catId = this.href.substr(1);
        $("#content_right").load('content_displaycatproducts.php?catId=' + catId);
    });
});

现在,在PHP脚本中,您可以在上一个方法中完成相同的操作。

希望我没有搞砸到某个地方,因为我无法测试这段代码:)你得到任何错误或故障,请报告,我会尽快修复。