1

mysql からデータを取得する php を使用して構築された 1 つの div に UL リストがあります。コードは次のとおりです。

<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=ユーザーが選択したものは何でも実行します。

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>

次に、$_GET 配列の ID を使用する category.php スクリプトを作成します。

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

リスト内のリンクを使用し、# を href として使用しているため、AJAX を使用することをお勧めします。これらすべてを行う 1 つの方法を次に示します。

まず、これらのリストにクラスを与えましょう。これを「カテゴリ選択」と呼びます (ひどいネーミングです。申し訳ありませんが、必要に応じて変更してください)。これにより、ID ごとに 1 つのイベントを追加する代わりに、単一の jQuery .click または .live('click', ...) で十分になります。

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

2 つ目: 簡単にするために、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 に答える