我不确定我在哪里出错了。
当用户点击不同的商品数量时,我正在尝试更改数据表。
我可能错误地使用$ .each()方法,因为我在页面上看不到任何结果,而且我是一个完整的jQuery noob。我感谢任何帮助,谢谢
测试table.html
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
function swapContent(count){
$(".price-sidebar").html("Put animation here").show();
$.ajax({
type: "POST",
dataType: 'json'
url: "myphpscript.php",
data: {countVar: count},
success: function(data){
$('#content').empty();
$.each(data, function(){
$("#content").append("<tr>");
$("#content").append("<td class='store-row'><h5 property='seller'>"+this[MerchantName]+"</h5></td>");
$("#content").append("<td class='price-row'><h5 property='price'>$"+this[Price]+"</h5></td>");
$("#content").append("<td><a property='url' target='_blank' href='"+this[PageURL]+"' class='btn btn-danger'>GET IT</a></td>");
$("#content").append("</tr>");
})
}
});
}
</script>
</head>
<body>
<a href="#" onClick="return false" onmousedown="javascript:swapContent('18');">18</a>
<a href="#" onClick="return false" onmousedown="javascript:swapContent('48');">48</a>
<a href="#" onClick="return false" onmousedown="javascript:swapContent('96');">96</a>
<section class="price-sidebar span8" >
<div property="offers" typeof="Offer">
<h2>Price Comparison</h2>
</br>
<table class="price-data">
<tr>
<th class='store-row'><h4>Store</h4></th>
<th class='price-row'><h4>Price</h4></th>
</tr>
<div id="content">
</div>
</table><!--end price-data-->
</div><!--end offers-->
</section><!--end price sidebar-->
</body>
myphpscript.php
<?php
$countVar = $_POST['countVar'];
$data = PriceCompare($countVar);
echo json_encode($data);
function PriceCompare($countVar){
$DBH = new PDO('mysql:host=localhost;dbname=--','---','---');
$STH = $DBH->query('SELECT ProductID, MerchantName, Price, PageURL
FROM merchants
WHERE ProductID=677 AND Count=' . $countVar . '
ORDER BY Price');
$result = $STH->fetchAll();
return $result;
}
?>
答案 0 :(得分:2)
你有三个问题:
您的dataType: 'json'
行最后没有逗号。
访问this.MerchantName
等数据。如果您定义了名为this[MerchantName]
的变量,则MerchantName
有效。
您要将<tr>
追加到#content
,然后将<td>
追加到#content
,而不是将<td>
追加到<tr>
1}}。
试试这个:
$.each(data, function () {
$("#content").append(
$("<tr/>")
.append("<td class='store-row'><h5 property='seller'>" + this.MerchantName + "</h5></td>");
.append("<td class='price-row'><h5 property='price'>$" + this.Price + "</h5></td>");
.append("<td><a property='url' target='_blank' href='" + this.PageURL + "' class='btn btn-danger'>GET IT</a></td>")
);
})