根据MIN和MAX数组值更改DIV颜色背景?

时间:2014-11-19 20:09:48

标签: javascript php jquery css ajax

简要说明一下,我是通过使用AJAX调用从数组中检索值的。将根据数字“aht_value”显示绿色到红色背景。正确显示颜色,因为我手动将值放在下面的计算中。话虽如此,在我的“函数conv(x)”中,我希望值是动态的。

我试图在我的代码中实现的3件事情却无法让它发挥作用。所以,这是我的fiddle for better understanding

  1. 从“aht_value”中的数组中获取MIN和MAX值。供以后在conv(x)函数中使用。
  2. 如果aht_value等于“NA”,则显示白色背景。
  3. 使值不超过小方块..如何将它们居中以使数字不重叠?
  4. 这是一个从我的“show_aht.php”中检索的数组示例。

    数组:

    [ 
      {
       "username":"OXGOR",
       "aht_value":"241",
       "station":"B20"
      }
      {
       "username":"AISAI2",
       "aht_value":"199",
       "station":"B21"
      },
      {
       "username":"CAPAP3",
       "aht_value":"NA",
       "station":"B10"
      }
     ]
    

    AJAX电话:

     <script type="text/javascript">
    
                $(document).ready(function() {
                    $('#aht').click(function(){
                        $.ajax({
                        type:"GET",
                        url : "show_aht.php",
                        data:{  } , // do I need to pass data if im GET ting?
                        dataType: 'json',
                        success : function(data){
                            //going through all DIVs only once with this loop
                                for(var i = 0; i < data.length; i++) { // loop over results
                                var divForResult = $('#desk_' + data[i]['station']); // look for div for this object
                                if(divForResult.length) { // if a div was found
    

    这里我输出背景颜色和aht_value

                                    divForResult.html(data[i]['aht_value']).css("background-color", colorMe(data[i]['aht_value']));
                                }//end if
                                }//end for
                        }//end success
                    });//end ajax   
                  });//end click
                });//end rdy
    
                //function for background color
                function colorMe(v){
                        return "rgb(" + conv(v) + "," + (255-conv(v)) + ",0)";
                }
    

    这里我想检查数组中的最低值,然后选择最高值进行计算 我将1800添加为最高,100添加为最低,但我希望它是数组中的值

                //function for calculation of background color depending on aht value               
                function conv(x){
                    return Math.floor((x - 100) / (1800-100) * 255);
                }
    
            </script>
    

1 个答案:

答案 0 :(得分:0)

您的json文件无效。 Ajax调用使用严格的方法,因此如果json无效,它将无法进入您的成功函数。

首先尝试调试json文件:http://jsonlint.com/

尝试使用这个json(已修复):

[
  {
    "username": "OXGOR",
    "aht_value": "241",
    "station": "B20"
  },
  {
    "username": "AISAI2",
    "aht_value": "199",
    "station": "B21"
  },
  {
    "username": "CAPAP3",
    "aht_value": "NA",
    "station": "B10"
  }
]