首页 > 解决方案 > 为什么不是 js / jquery 事件在 PHP foreach 中工作

问题描述

我了解 foreach 但这对我来说是新的,因为在 PHP 的 foreach 中,我为每个显示的项目都有一些脚本,并且想知道为什么它只适用于第一个项目中的项目

在代码中,我从 MYSQL 数据库中获取图像。而不是在 js 中使用 onclick 我正在学习更多关于 jquery 的知识,只有当我单击第一张图像时,它才会生成
$("#main").load("includes/product.php");
路径并更改我想要更改但在产品名称和购物车按钮中不会更改视觉效果。

<section id="new-products" class="clearfix">
  <div class="title-block">
    <h4>New Products</h4>
  </div>
  <?PHP 
    foreach ($item as $items){
  ?>        
  <div class="left-col-block">
    <article class="product-box clearfix">   
    <a href="#store/category/<?PHP echo $items['category'];?>/<?PHP echo $items['brand'];?>/<?PHP echo $items['name'];?>" id="product-link">
      <img src="<?PHP echo $items['image']; ?>" alt="Card Games" title="Card Games" height="80" width="80">
    </a>
    <a href="#store/category/<?PHP echo $items['category'];?>/<?PHP echo $items['brand'];?>/<?PHP echo $items['name'];?>" id="product-link"><?PHP echo $items['name']; ?></a><br>
    <span class="price">$<?php echo $items['price'];?></span>
    <a href="#store/category/<?PHP echo $items['category'];?>/<?PHP echo $    ['brand'];?>/<?PHP echo $items['name'];?>" id="product-link" class="button tiny right icon-basket"></a>
   </article>
  `<script>
     $( "#product-link" ).click(function() {

     $("#main").load("includes/product.php");
     });
   </script>
 </div> 
 <div class="left-col-block">
 </div>
 <?PHP
 }
 ?>
</section>

预期:我希望每个带有 product-link id 的链接在每个产品和每个 id 上使用 jquery 提供事件触发器

实际结果: $("#main").load("includes/product.php"); 仅适用于等于 product-link 的第一个 id

标签: phpjqueryajax

解决方案


找到答案是
<script>$( ".product-box a" ).click(function() { $("#main").load("includes/product.php"); });</script>
因为 product-bot 是一个类,我没有意识到 # 使它检查 id 和。使它搜索一个类,并且类可以被多次调用,而 id 必须是唯一的


推荐阅读