jQuery更新多个#divs,一个mysql_query

时间:2012-11-05 14:11:28

标签: php jquery mysql html

有点复杂,但我尽力解释我的问题。

我有一个主文件dashboard.html。 在其中我有一个jQuery函数来每15秒加载mysql_query以获得我需要的15个左右的变量。 (这是一个财务/销售网络应用程序......销售代理商希望销售,订单,赚取的收入等等实时更新)显示在#div中,其中包含多个列表项。使用每15秒,查询,然后整个div一次更新的方法没有问题。因此我没有附加Jquery效果(即fadeIn / fadeOut),因为整个div不断衰落。不是我想要的视觉效果,但就目前而言,它是有效的。

我的目标:能够每15秒执行一次mysql_query。抓住变量(我现在已经在做了。但是现在,我希望能够只更新已经改变的ListItem并将淡入淡出效果附加到该项目,而不是整个#div。

我试图避免的是将查询分离为15个单独的查询,因为这显然效率不高。

希望这对每个人都有意义。代码可以提供,但我不认为它在这一点上会有所帮助。我需要了解我需要采用什么方法来开发正确的代码。感谢大家的期待。

编辑:我添加了一些代码来帮助澄清我的立场: dashboard.html

var auto_refresh = setInterval(function (){
$('#order_jq').load('stats_count.php')
}, 15000); // refresh every 15 seconds

然后在体内:

<div class="span8">
<div id="order_jq" class="centerContent">
Patiently loading stats ...
</div><!-- End id="ortder_jq -->
</div><!-- End .span8 -->

stats_count.php包含(为清晰起见而删除)

<?php
require "database/connect2.php";
$result = mysql_query( "SELECT .... NORMAL QUERY...NOTHING FANCY HERE")
while ($row = mysql_fetch_array($result))
{$orders = number_format($row['ordercount']);
$annual_order = number_format($row['annual_order']);
}

最后包含在stats_count.php中我还包括列表项:

<ul class="bigBtnIcon">
    <li>
      <a href="#">
        <span class="icon entypo-icon-phone"></span>
        <span class="txt">Orders</span>
        <span class="notification"><?php echo $orders?></span>
      </a>
     </li>
      <li>
        <a href="#">
          <span class="icon brocco-icon-mic"></span>
          <span class="txt">Auburn</span>
          <span class="notification blue"><?php echo $annual_order ?></span>
        </a>
      </li>
</ul>

-D

3 个答案:

答案 0 :(得分:1)

如果要更新多个div,则必须使用“.class”类而不是id“#id”选择它们。

要每15秒创建一次mysql_query,你需要创建setInterval(function(),15000),其中函数必须向某个页面发出ajax请求才能进行此查询..

我可以建议你为这些请求使用jQuery Ajax ..

答案 1 :(得分:0)

在不了解您的数据格式的更多细节的情况下,很难详细说明,但一般方法是:

  1. 将当前值存储到对象中
  2. 使用传入值创建新对象
  3. 循环遍历比较传入值的对象的属性 现有价值
  4. 更新单个面板(通过课程或更具体的ID)
  5. 将传入的值对象转换为当前值对象 准备下一个SQL查询

答案 2 :(得分:0)

如果我理解正确,可以这样做: - 所有的listitems都必须有一个class属性,让我们说“list_items”。 - 在使用Jquery获取数据后,您可以在list_items上执行jquery.each(),这样您就可以检查该列表项的值是否= =新值,如果不是您更新列表项。 我希望这回答你的问题。