Javascript 从数据库中获取jQuery滑块值

Javascript 从数据库中获取jQuery滑块值,javascript,jquery,Javascript,Jquery,我有一个包含这些表的数据库 company ========== id | name | ========== 1 | C1 | 2 | C2 | 3 | C3 | position ================= id | level | name | ================== 1 | 1 | SE | 2 | 2 | SE1 | 3 | 3 | SE2 | 4 | 1 | SA | 5 | 2

我有一个包含这些表的数据库

company
==========
id | name |
==========
 1 | C1   |
 2 | C2   |
 3 | C3   |

 position
 =================
id | level | name |
==================
 1 |  1    | SE   |
 2 |  2    | SE1  | 
 3 |  3    | SE2  |
 4 |  1    | SA   |
 5 |  2    | SA1  |
 3 |  3    | SA2  |

 company_position
 ==========
 cid | pid |
 ==========
  1  |  1  |
  1  |  2  |
  1  |  3  |
  2  |  1  |
  2  |  2  |
  2  |  3  |
  3  |  1  |
  3  |  2  |
  3  |  3  |
在UI中,我有一个用于显示公司名称的
。有一个对应的滑块,应该显示位置范围。一旦更改
,我希望滑块接收范围的新值(最小值、最大值、位置名称而不是值)。我该如何着手解决这个问题?jQueryGetJSON?我不是在寻找代码,而是一种方法

更新
我意识到我的问题是我无法想象JSON回调数据的结构。

我会采用AJAX方式,只需让您的onChange调用一个传递
值的jQuery POST函数(这样您就可以正确过滤)以及您需要的任何其他内容。 然后在回调时,您将收到正确编码的所需值(json_encode是一个选项),用于读取或仅以纯文本形式。 但是请记住,回调函数中的
数据
只是一个变量,如果您需要更多变量(例如最小值和最大值),请对所需数据进行编码,以便以后可以访问它


希望这对你有帮助

假设您使用所选公司向服务器发送一个
$。post
。假设用户选择了公司1。然后,在服务器上,您需要执行如下查询:

SELECT position.level, position.name FROM position
JOIN company_position ON position.id = company_position.pid
JOIN company ON company.id = company_position.cid
WHERE company.id = ?
现在,根据上面的数据,您应该有一个带有
(1,SE)、(2,SE1)、(3,SE2)
的结果集。我会将其作为JSON对象发送回去(我不知道您有什么服务器环境,所以构建此结构取决于您):

或者,如果位置很少,您可以让客户端计算max和min,只发送JSON:

{
  "1": "SE",
  "2": "SE1",
  "3": "SE2"
}
使用javascript计算最大值和最小值:

var max = Math.max.apply(null, Object.keys(response))
  , min = Math.min.apply(null, Object.keys(response));
在javascript中,给定对象

var result = {
  "min": 1,
  "max": 3,
  "positions": {
    "1": "SE",
    "2": "SE1",
    "3": "SE2"
  }
};
您可以这样查询该对象:
位置[“1”]=“SE”
。因此,如果要显示“最小值”和“最大值”的标签,可以找到“最小值”和“最大值”的值,如下所示:

var min = result.min, max = result.max
你会发现他们的标签是这样的:

var minLabel = result.positions[result.min]
  , maxLabel = result.positions[result.max];
几分钟前我发了一封信。也许这会有帮助,也许不会

你为什么不使用这样的东西:

var minLabel = result.positions[result.min]
  , maxLabel = result.positions[result.max];
jQuery

$(".menu_item").mouseover(function(){   
    var id = $(".selected").attr("id");
    var qst = "?id="+id;
    var html = '';
    $.getJSON('ajax/get_sub_cats.php'+qst, function(data){
        var len = data.length;
        for (var i = 0; i< len; i++) {
            html += '<a id="subCatLink'+data[i].Sub_Cat_ID+'" href="products.php?id='+data[i].Sub_Cat_ID+'">'+data[i].Sub_Cat_Name+'</a>';
        }
        $(".sub_menu[id="+id+"]").html(html);
    });
});

如示例所示(PHP,但您可以在asp.net上执行其他类似序列化的操作),我使用json_encode。

是的,我认为最好的解决方案是将数据库值保存到某个json对象中,并使用它设置滑块的选项。有什么特别的问题吗?@ggzone noob问题:有没有一种基于公司ID查询JSON对象的方法?我想我正在努力使JSON对象可查询。。。它就像一个数组。您的对象有“公司”、“职位”和id及其值。之后,您可以将其用于循环或任何您想要的数据,我是否应该再次循环(
$)每个(数据、函数(key、val){
)并将它们放入2D数组中?或者,是否有通过传递键直接读取值的方法?
 require('../_req/base.php');
    $return = array();

    $id = $_REQUEST['id'];
    $sql = "select * from sub_cats where Main_Cat_ID = '$id'";
    $result = mysql_query($sql);

    while($ln = mysql_fetch_array($result)){
        $return[] = $ln;
    }

    echo json_encode($return);