You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为<a href>标签添加GET请求?实现博客分类筛选功能

解决点击分类发送GET请求排序博客文章的问题

我来帮你搞定这个分类筛选的问题!其实实现点击分类发送GET请求重新排列文章并不复杂,大概率是之前的实现细节没处理对,给你两种靠谱的方案,你可以试试:

方案1:用a标签直接发送GET请求(最简单)

这是最直接的方式,每个分类项做成带参数的链接,点击后浏览器会自动发送GET请求到当前页面,后端拿到参数后筛选对应分类的文章就行。

前端代码(PHP循环生成分类链接)

<?php if ($numOfRowsCategories > 0): ?>
  <div class="category-nav">
    <!-- 可以加一个"全部"选项,点击显示所有文章 -->
    <a href="?" class="category-link">全部文章</a>
    <?php foreach ($categories as $category): ?>
      <a href="?category=<?php echo $category['id']; ?>" class="category-link">
        <?php echo htmlspecialchars($category['name']); ?>
      </a>
    <?php endforeach; ?>
  </div>
<?php endif; ?>

后端处理逻辑(PHP示例)

拿到GET参数后,根据参数筛选文章:

// 先获取选中的分类ID,默认0表示显示所有文章
$selectedCategory = isset($_GET['category']) ? intval($_GET['category']) : 0;

// 用PDO预处理语句查询,防止SQL注入
if ($selectedCategory > 0) {
  $stmt = $pdo->prepare("SELECT * FROM posts WHERE category_id = ? ORDER BY created_at DESC");
  $stmt->execute([$selectedCategory]);
} else {
  $stmt = $pdo->query("SELECT * FROM posts ORDER BY created_at DESC");
}
$posts = $stmt->fetchAll(PDO::FETCH_ASSOC);

方案2:用按钮+表单发送GET请求(适合按钮样式需求)

如果你更想用按钮样式,那每个分类对应一个独立的小表单,点击按钮提交表单发送GET请求,注意表单要设置method="GET",并且把分类ID放在隐藏字段里:

前端代码(PHP循环生成按钮表单)

<?php if ($numOfRowsCategories > 0): ?>
  <div class="category-buttons">
    <!-- 全部文章按钮 -->
    <form method="GET" action="" style="display: inline-block;">
      <button type="submit" class="category-btn">全部文章</button>
    </form>
    <?php foreach ($categories as $category): ?>
      <form method="GET" action="" style="display: inline-block;">
        <input type="hidden" name="category" value="<?php echo $category['id']; ?>">
        <button type="submit" class="category-btn">
          <?php echo htmlspecialchars($category['name']); ?>
        </button>
      </form>
    <?php endforeach; ?>
  </div>
<?php endif; ?>

关键注意事项

  1. 一定要用htmlspecialchars()转义分类名称,防止XSS攻击;
  2. 后端用intval()处理分类ID,配合PDO预处理语句,避免SQL注入;
  3. 如果你的页面不是根目录,href要写对当前页面的路径,比如href="blog.php?category=...";
  4. 可以给当前选中的分类加高亮样式,比如判断$selectedCategory是否等于当前分类ID,然后添加active类。

内容的提问来源于stack exchange,提问作者Michael Presman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:09:30