在没有刷新的情况下在同一个php页面中传递var

时间:2015-12-09 18:16:08

标签: javascript php jquery mysql ajax

我的网站有问题。我有一个从数据库中获得的产品列表。这些产品有Image和Name阵营。 现在我想要的是,当我点击这个产品的某人时,进入我的网页会出现一个新的框,其中有产品描述,价格等。 这是产品列表的代码

<?php
  include 'php/dbmanager.php';
  $result = DBManager::getInstance()->getProducts();
  if($result->num_rows > 0){
    $i = 0;
    while($row = $result->fetch_assoc()){
      echo "<div class=\"wrap effect8 open\" onclick>";
      echo "<h1>".$row['product_name']."</h1>";
      echo "<div class=\"left\">";
      echo "<img src=".$row['product_image']."  width=150  height=150  >";
      echo "</div>";
      echo "<div class=\"right\">";
      echo $row['product_description'];
      echo "<div class=\"prodSelection\">";
      echo '<a href="catalogo.php?prodID=';
      echo $row[product_id];
      echo '"';
      echo 'class="button">Acquista</a>';
      echo '<label>';
      echo '<select class="selectBoxCat">';
      echo '<option selected> 1 </option>';
      echo '<option>2</option>';
      echo '<option>3</option>';
      echo '</select>';
      echo '</label>';
      echo '</div>';
      echo '</div>';
      echo '</div>';

    }
  }
?>

如何从我点击的单个产品中获取ProductID($ row [product_id])并将其用于新查询以选择此单个产品的数据库行(并使用此查询进行制作)像那样的另一个PHP)?

我不想刷新页面。

我可以使用pushstate方法(HTML5)吗?

1 个答案:

答案 0 :(得分:1)

如果您想在用户点击时获取其他数据,则需要发出ajax请求以更新DOM而不刷新页面。

在PHP方面,您需要创建一个返回json编码值的脚本。

在JS方面,您需要创建一个click事件侦听器。在监听器内部,您需要向PHP脚本发出ajax请求。

当您的ajax调用成功返回数据时,您需要操作DOM以显示产品的详细信息。

点击听众的示例:

$("#button").on("click", function(){
    // make your ajax request here
});

ajax调用示例:

$.ajax({
    method: "POST",
    url: "scriptThatReturnsProductDetails.php",
    data: 
    {
        productID: $("#myProduct").attr('id')
    }
})
.done(function( msg ) {
    // Do some DOM manipulation
});