我的网站有问题。我有一个从数据库中获得的产品列表。这些产品有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)吗?
答案 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
});