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);