使用PHP从数据库显示的产品列表。当产品被选中时,调用javascript函数将产品输入到html表单字段。
<div id="addProductPanel">
<div class="popularProduct">Popular products</div>
<div class="closeButton" onclick="closePopularProductWindow()">X</div>
<?php
$query_popular_product="SELECT product_code FROM database_table GROUP BY product_code ORDER BY product_code DESC";
$result_popular_product = $link->query($query_popular_product);
while($row = $result_popular_product->fetch_assoc()) {
$product_code = $row['product_code'];
echo '<div class="popularProduct" onclick="setProduct("'.$product_code.'")">'.$product_code.'</div>';
}
?>
</div>
js函数setProduct是:
function setProduct(product) {
console.log(product);
document.getElementsByName("product")[0].value = product;
document.getElementById("addProductPanel").style.display = "none";
}
当加载页面并使用Chrome检查器控制台时,选择产品不会在控制台中打印产品,并产生错误Uncaught SyntaxError: Unexpected end of input
, HTML显示如下:
<div class="popularProduct" onclick="setProduct("PROD123")">PROD123</div>
我试着输入以下HTML,这与javascript函数成功地工作:
<div class="popularProduct" onclick="setProduct('PROD123')">PROD123</div>
无法从数据库中获取产品值的PHP语法。
用单引号代替双引号:
echo '<div class="popularProduct" onclick="setProduct(''.$product_code.'')">'.$product_code.'</div>';
双引号将终止onclick="setProduct(...
的双引号(单引号中的单引号需要转义,所以使用'
)