1

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

<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 table WHERE categoryname=whatever the user selected。

4

1 回答 1

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
?>

由于您要使用列表中的链接并且您使用 # 作为 href,我会考虑您可能希望使用 AJAX。这是做这一切的一种方法。

首先:让我们给这些列表一个类,我们将其称为“类别选择”(糟糕的命名,抱歉,随意更改即可)。这将允许单个 jQuery .click 或 .live('click', ...) 就足够了,而不必为每个 id 添加一个事件。

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

第二:为了方便我们,让我们使用href作为“#”(这里只是一个表示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 脚本中执行与前面方法相同的操作。

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

于 2012-10-04T01:36:04.813 回答