我的网站有问题。我有一个从数据库中获得的产品列表。这些产品有图像和名称阵营。 现在我想要的是,当我点击这个产品的某个人时,进入我的网页会出现一个新框,其中有产品描述、价格等。 这是产品列表的代码
<?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) 吗?
最佳答案
如果你想在用户点击时获得额外的数据,你需要发出ajax请求来更新你的DOM而不刷新页面。
在 PHP 端,您需要创建一个返回 json 编码值的脚本。
在 JS 方面,您需要创建一个点击事件监听器。在监听器内部,您需要向 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
});
关于javascript - 在不刷新的情况下在同一 php 页面中传递 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34186102/