2013-06-12 71 views
0

这似乎很容易够可爱的专家在这里为SO :)但我不能找到有关这个体面的回答/问题上的SO或谷歌。请帮助。 :)显示当前值/ jQuery的

我如何在实时通过AJAX/JS/jQuery的显示PHP变量的当前值

基本上我尝试做一个电子商务网站,我使用一个会话存储的购物车内容和在篮下的带有回声声明计数多少内容显示它目前,然而,当他们在一个特定的产品,并试图在车加入吧,车的价值不呼应添加的项目,直到有一个页面刷新,所以我需要像AJAX这样的东西来显示当一个项目被添加时没有页面刷新的会话的更新值。

非常感谢。

这里是我的车作为一个示例代码段:

// Assign shopping cart ($_SESSION['cart']) into variable 
$basket = count($_SESSION['cart']); 

和显示:

<!-- Display contents of the shopping cart --> 
<ul id="basket" class="clearfix"> 
    <li class="top"> 
     <a href="checkout.php" class="top_link"> 
     <span>Items: <? echo $basket ?></span> 
     </a> 
    </li> 
</ul> 

太感谢你了..请提供关于如何实现这一目标的样本代码(无论是js还是jQuery),并有助于处理这种情况的最佳实践。

+0

一点ajax的研究将找到答案 – 2013-06-12 20:59:46

+0

@Dagon我一直在寻找在这个很多问题ajax,但大多数代码大多基于不同的场景或更深的实现。 AJAX的一点研究这应该已经能够提供一个链接,我,我不会是需要问这个,如果我可以很容易地找到它。 AJAX是有很多实现甚至只需会打字就谷歌的如何在实时显示PHP变量“将要给你很多类型的结果是复杂的非常模糊的话题。提供链接或帮助对于刚刚开始学习编程的人来说是非常赞赏的。 – GitKidd

+0

在最基本的层面上,创建一个新的PHP文件。对这个新的PHP文件进行AJAX调用。 JQuery可以很容易地发出AJAX请求。 PHP文件会回显您的$ _SESSION的内容。然后,AJAX回调处理程序可以接收这些数据作为参数,您可以在该点处执行您想要的任何操作。 – Freddie

回答

0

第一溶液(根据您的要求 - 坏主意)

get-count-items.php 
<?php 
    session_start(); 
    die(count($_SESSION['cart'])); 
?> 

Javascript 
<script> 
    setInterval(function(){ 
     $.post('get-count-items.php', {}, function (total_items){ 
      $('#total-items').html(total_items); 
     }); 
    }, '1000'); 
</script> 

HTML 
<ul id="basket" class="clearfix"> 
    <li class="top"> 
     <a href="checkout.php" class="top_link"> 
      <span>Items: <span id="total-items"><? echo $basket ?></span></span> 
     </a> 
    </li> 
</ul> 

这个JavaScript将在每1秒到服务器的请求。

二溶液(按钮事件“添加到购物车”)

add-to-cart.php 
<?php 
    session_start(); 
      // code for add to cart... 
    die(count($_SESSION['cart'])); 
?> 


Javascript 
<script> 
    $('.add-to-cart').click(function(){ 
     $.post('add-to-cart.php', {}, function (total_items){ 
      $('#total-items').html(items); 
     }); 
     return false; 
    }); 
</script> 

HTML 
<ul id="basket" class="clearfix"> 
    <li class="top"> 
     <a href="checkout.php" class="top_link"> 
      <span>Items: <span id="total-items"><? echo $basket ?></span></span> 
     </a> 
    </li> 
</ul> 

<a href="" class="add-to-cart">Add to cart</> 
+0

太感谢你了..现在我会尝试这个:),顺便说一句,这会在服务器进程方面的任何影响,如果有更多的用户使用该系统说20-30并发用户,所以它像30个浏览器每次请求同时1秒到服务器。有可能有一个基于事件的功能,只有使该变量/会话的值的请求/呼叫时,他们单击添加到购物车按钮?谢谢。 :) – GitKidd

+0

@GitKidd是的。这是个问题。刚刚添加第二个解 – 2013-06-12 21:21:32