Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP比较产品,将产品作为cookie保存在页面上_Php_Jquery_Mysql_Ajax_Cookies - Fatal编程技术网

使用PHP比较产品,将产品作为cookie保存在页面上

使用PHP比较产品,将产品作为cookie保存在页面上,php,jquery,mysql,ajax,cookies,Php,Jquery,Mysql,Ajax,Cookies,我正在尝试制作一个简单的产品比较系统,到目前为止,我所做的是,当我单击add to compare按钮发送jquery ajax请求并获得回调响应时,我能够使它成为这样,但我不知道它是如何将产品保持在页面上或将比较容器上的项目显示为cookies的,所以当用户刷新产品时,我的代码是这样的 COMPARE.PHP <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jq

我正在尝试制作一个简单的产品比较系统,到目前为止,我所做的是,当我单击add to compare按钮发送jquery ajax请求并获得回调响应时,我能够使它成为这样,但我不知道它是如何将产品保持在页面上或将比较容器上的项目显示为cookies的,所以当用户刷新产品时,我的代码是这样的

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

我弄糊涂了,我该如何在页面上保留内容

$.get('post.php?id='+$(this).parent().attr('data-compare-id'),function (data) { 
    $('.compare_container').append(data);
},'html');
如果您使用的是jquery,那么应该使用$来查找dom元素。上面的代码将对post.php进行ajax get调用,并获取html。它将结果作为数据变量传递给函数,然后将该数据附加到容器中

不过,您的代码还有更多问题。您应该转义所有get令牌以避免SQL注入,最好使用mysqli改进版而不仅仅是mysql。您还应该避免执行SELECT*以避免在数据库上使用过多的资源,请改用SELECT phone\u img、phone\u name


另外,进一步检查后,您正在加载jquery 1.11.2,而最新版本为2+,这可能会给您带来问题。

我可以附加产品,但如何使用cookies将产品保存在比较容器中,安全性不是我在localhost中做的所有事情,在live站点上,我将使用mysql\u real\u escape\u字符串,我错误地使用了旧版本的jquery。在我看来,最简单的方法是使用会话变量。将id值作为数组存储在会话变量中,如果它们刷新页面,则使用该数组显示值。每次都会使用ajax get请求访问服务器,因此只需使用array_push将id添加到会话变量中即可。
$.get('post.php?id='+$(this).parent().attr('data-compare-id'),function (data) { 
    $('.compare_container').append(data);
},'html');