我正在尝试制作一个简单的产品比较系统到目前为止我所做的是我能够使它像我点击添加到比较按钮我发送jquery ajax请求并获得该产品的回叫响应但我不知道它是如何将产品保留在页面上或将比较容器上的项目显示为cookie所以当用户刷新产品时仍然存在我的代码就好了,
COMPARE.PHP
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('.compare').click(function(){
a = this.parentNode.getAttribute('data-compare-id');
$.get('post.php?id='+a,status,foo);
});
});
function foo(data){
console.log();
}
</script>
</head>
<body>
<?php
mysql_connect("localhost",'root','GoogleFacebook') or die(mysql_error());
mysql_select_db('phones') or die(mysql_error());
$query = mysql_query("SELECT * FROM mobiles");
while($row = mysql_fetch_array($query)){
echo "<div class='phone' data-compare-id='".$row['id']."' style='display:inline-block;margin:10px;border:1px solid #ddd;padding:10px;' >";
echo "<a href='".$row['phone_a']."' >";
echo $row['phone_name']."</br>";
echo "<img src='".$row['phone_img']."' />";
echo "</br>";
echo "</a>";
echo "<button class='compare'>Compare</button>";
echo "</div>";
}
?>
<div class='compare_container'>
</div>
</body>
</html>
post.php中
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET'){
$id = $_GET['id'];
mysql_connect("localhost",'root','GoogleFacebook') or die(mysql_error());
mysql_select_db('phones') or die(mysql_error());
$query = mysql_query("SELECT * FROM mobiles WHERE id='$id'");
$row = mysql_fetch_array($query);
echo "<img src='".$row['phone_img']."' />";
echo "<span>".$row['phone_name']."</span>";}
?>
我很困惑如何将内容保留在页面上
答案 0 :(得分:0)
$.get('post.php?id='+$(this).parent().attr('data-compare-id'),function (data) {
$('.compare_container').append(data);
},'html');
如果你正在使用jquery,你应该使用$()来找到你的dom元素。上面的代码将对post.php进行ajax get调用并获取你的html。它会将结果作为数据变量通过函数传递,然后将该数据附加到容器中。
您的代码还有其他问题。您应该逃避所有获取令牌以避免SQL注入,并且最好使用mysqli(改进)而不是mysql。您还应该避免使用SELECT *以避免在数据库上使用过多的资源 - 请改用SELECT phone_img,phone_name。
另外,经过进一步审核,当最新版本为2+时,您正在加载jquery 1.11.2,这可能会导致您遇到问题。