【问题标题】:Real Time DIV background color update based on database value基于数据库值的实时DIV背景颜色更新
【发布时间】:2014-03-31 04:57:47
【问题描述】:

我希望 div 根据从数据库中检索到的值更改颜色。 当前代码没有给出任何颜色,而是使用设置的 css 颜色。

主 div css

.status{    background: #000;   }

status.php

if ($user_data['status'] === "1") { echo "online"; } 
else {                              echo "offline";  }

ajax 函数

 $(document).ready(function() {
    setInterval(function(){
      $.ajax({
        url: 'status.php',
        type: 'GET',
        success: function(data) {
            if (data === "online") {
               $('.status').css('background', '#40A547');
            } else { 
               $('.status').css('background', '#7f8c8d');
            }
        }
    });
   }, 2000);
});

主 div

 <div class="status">something</div>

请帮帮我。我们将不胜感激所有帮助!

【问题讨论】:

  • 请通过在success中加入alert来检查它是否成功!
  • 试试$('.status').css({background: '#7f8c8d'});
  • $('#divid').css('background','#40A547');如果这不起作用,请按 f12 并查看控制台是否有错误,如果是,请先解决此问题。
  • 你能发布你从“status.php”得到的响应吗?
  • @sandip 我在 if 和 else 中都设置了警报,我只是让 else 发出警报。

标签: php jquery


【解决方案1】:

可以使用此代码识别问题:

$(document).ready(function() {
    setInterval(function(){
    $.ajax({
        url:'status.php',
        datatype:"application/json",
        type:'GET',
        success:function(data){
            if (data === "online") {
                $('.status').css('background', '#40A547');
            } else {
                $('.status').css('background', '#7f8c8d');
            }
        },
        error:function(){
            //if pointer is comming it means there is some error in the back end code
        }
    });
    }, 2000);
});

现在检查你的firebug,它会显示error details,如果你没有firebug,添加它然后检查。

还放一些content in the div 以便它可见。如果没有内容 div 不会出现。

希望这会有所帮助!

【讨论】:

  • @GoGo 那么您是否尝试过将警报置于成功以及 ajax 的错误中?
  • 我放置了错误:function(){alert("error");} 但在萤火虫中没有看到任何东西,我也确实在 if 和 else 中都放置了警报,只有 else 是提醒
  • @GoGo 所以你是说它正在成功,而在其他部分,对吗?如果我是对的,一切正常,只需将
    之类的内容添加到背景颜色
    ,它就会起作用!
  • 是的,你是对的。我那里确实有内容。我刚刚将它从我的主要问题中删除,以获得更清晰的外观,但在实际代码中是这样的:
    ' .$price 。 '
    但由于某种原因它不起作用
  • @GoGo 它将无法正常工作:
【解决方案2】:

您的 div 中没有任何内容,因此它的高度和宽度基本上为 0,因此您什么都看不到(我假设您的意思是“当前代码没有给出任何颜色”)。

如果您指定高度和宽度,或在 div 中添加一些内容(即使是 &amp;nbsp;,您应该会看到背景颜色。

【讨论】:

  • 我在这里清空了一个更清晰的问题,我的实际代码中有很多东西
【解决方案3】:

这意味着您没有从您的 ajax 中恢复“在线”。你需要编辑你的 PHP 代码,你正在 AJAXing 纯粹地说“在线”,没有 div 或标记。

【讨论】:

  • 没有 div 是什么意思?你能告诉我你的意思的代码的例子吗
  • 如果您从 alert(data) 收到带有 div 的警报,那么您的 php 页面的回调是错误的。警报(数据)中出现的内容纯粹是您的 php 脚本回显的内容。
  • 我修好了。我有一个错误实际上出现在警报中。现在当我提醒(数据);我得到“离线”
  • 当我登录时,看起来我的错误:function(){alert("error");} 被调用
  • 总是做警报(数据)。这将向您展示返回的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 2019-03-08
  • 1970-01-01
  • 2018-12-22
  • 2014-05-22
  • 1970-01-01
  • 2013-08-09
相关资源
最近更新 更多