Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 按浏览器上的“后退”按钮后保留div状态_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Php 按浏览器上的“后退”按钮后保留div状态

Php 按浏览器上的“后退”按钮后保留div状态,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,场景-我正在开发一个基于laravel框架的网站,用户可以将产品添加到购物车,当他们将产品添加到购物车时,我将该产品的div的不透明度设置为“0.3”(稍微不太可见),这样用户就可以知道哪些产品已添加到购物车,而无需进入购物车页面进行检查。此外,我还使用ajax lazyload,当用户向下滚动窗口时,它会得到6个产品。此外,当用户单击产品时,我会将他们重定向到产品页面,在那里他们可以看到产品的详细信息(如电子商务) 现在的问题是,当用户将一些产品添加到购物车中,然后打开一个产品以检查详细信息,

场景-我正在开发一个基于laravel框架的网站,用户可以将产品添加到购物车,当他们将产品添加到购物车时,我将该产品的div的不透明度设置为“0.3”(稍微不太可见),这样用户就可以知道哪些产品已添加到购物车,而无需进入购物车页面进行检查。此外,我还使用ajax lazyload,当用户向下滚动窗口时,它会得到6个产品。此外,当用户单击产品时,我会将他们重定向到产品页面,在那里他们可以看到产品的详细信息(如电子商务)

现在的问题是,当用户将一些产品添加到购物车中,然后打开一个产品以检查详细信息,然后单击浏览器返回按钮返回到产品列表页面时,该页面上的选定项目将不再被选中(这意味着尽管该产品已添加到购物车中,但不透明度设置为默认值)。 请考虑我使用LaZyLoad在窗口滚动中提供越来越多的产品。
我尝试过的东西-我有一个存储所有购物车产品的会话。我将代码添加到我的产品列表页面,若产品被添加到购物车,则将不透明度设置为0.3。但要获得此结果,用户必须在返回产品列表页面时单击“刷新”按钮。

解决方案:我创建了SetInterval Ajax函数以获取会话中的当前产品,并使用该函数更改产品分区的不透明度。因此,尽管我有一个懒虫负载,但我可以根据需要设置产品的不透明度

 jQuery(document).ready(function()
 {
    var refreshId = setInterval( function() 
    {
        $.ajax({
           url: '/products/state',
           type: "POST",
           success: function(data)
           {    
               if(data == 0)
               {

               }
               else
               {
                   $.each(data, function(key, value) 
                   {
                       $('#product_box_'+value).attr('style','opacity: 0.3');
                   });
               }
           } 
       });
   }, 500);

});

解决方案:我创建了SetInterval Ajax函数来获取会话中的当前产品,并使用它来更改产品分区的不透明度。因此,尽管现在我有一个懒散的负载,但我可以根据需要设置产品的不透明度

 jQuery(document).ready(function()
 {
    var refreshId = setInterval( function() 
    {
        $.ajax({
           url: '/products/state',
           type: "POST",
           success: function(data)
           {    
               if(data == 0)
               {

               }
               else
               {
                   $.each(data, function(key, value) 
                   {
                       $('#product_box_'+value).attr('style','opacity: 0.3');
                   });
               }
           } 
       });
   }, 500);

});

“但要获得此结果,用户必须在返回产品列表页面时单击“刷新”按钮。”为什么?如果产品处于会话中(我会避免,也许cookie是一种更好的方法),您应该能够在页面逻辑中将所选产品标记为褪色?感谢您的回复,但我不想使用cookie,因为它有许多我无法控制的东西,例如,如果用户阻止cookie或删除。无论如何,我找到了解决问题的办法。解决方案:我创建了SetInterval Ajax函数来获取会话中的当前产品,并使用它来更改产品分区的不透明度。因此,虽然现在我有一个懒散的负载,但我可以根据需要设置产品的不透明度。“但要获得此结果,用户必须在返回到产品列表页面时单击刷新按钮。”为什么?如果产品处于会话中(我会避免,也许cookie是一种更好的方法),您应该能够在页面逻辑中将所选产品标记为褪色?感谢您的回复,但我不想使用cookie,因为它有许多我无法控制的东西,例如,如果用户阻止cookie或删除。无论如何,我找到了解决问题的办法。解决方案:我创建了SetInterval Ajax函数来获取会话中的当前产品,并使用它来更改产品分区的不透明度。因此,虽然现在我有一个懒散的负载,但我可以根据需要设置产品的不透明度。“但要获得此结果,用户必须在返回到产品列表页面时单击刷新按钮。”为什么?如果产品处于会话中(我会避免,也许cookie是一种更好的方法),您应该能够在页面逻辑中将所选产品标记为褪色?感谢您的回复,但我不想使用cookie,因为它有许多我无法控制的东西,例如,如果用户阻止cookie或删除。无论如何,我找到了解决问题的办法。解决方案:我创建了SetInterval Ajax函数来获取会话中的当前产品,并使用它来更改产品分区的不透明度。因此,尽管现在我有一个懒散的负载,但我可以根据需要设置产品的不透明度。