2014-03-26 25 views
0

我有一个窗体,用户必须选择第一个<select>,它会过滤数据库上的第二个<select>并刚刚显示给用户。筛选器<select>与其他<select>与数据库mysql和php

我已经看到了一些网站,我想将它放在我的

第一<select>

<select name="area" id="area"> 
    <option title="" value="">Select ...</option> 
    <option value="1">First</option> 
    <option value="2">Second</option> 
    <option value="3">third</option> 
</select> 

如果我选择用价值1 O选项,它会在MySQL上搜索所有ID为线= 1

SELECT * FROM tblarea WHERE id_prof = 1; 

而这种结果将使第二选择

<select name="prof" id="prof"> 
    <option title="" value="">Select ...</option> 
    <option value="1">1.1</option> 
    <option value="2">1.2</option> 
    <option value="3">1.3</option> 
</select> 

虽然查询工作,它会显示在<select>“搜索...”

如果我想错了,请帮助我,并给我出出主意。

感谢

+0

这不是真的清楚你的问题是 – Idris

+0

使用jquery ajax功能 – dontHaveName

+0

这是一个求职网站,所以我需要过滤,该地区和后显示角色 – Guhh

回答

1

由于@dontHaveName建议,使用Ajax调用,这将是这个样子:

$('#area').on('change', function(e) { 

    $.ajax({ 
    url: '/jobs/options/', 
    type: 'POST', 
    data: $(e.target).val(), 
    dataType: 'html', 
    success: function(opts) { 
     $('#prof').html(opts); 
    }, 
    error: function(xhr, status, err) { 
    console.log(err); 
    } 
    }); 

}); 

一些Ajax代码是从内存中,所以让我知道如果你得到错误。

+0

谢谢!谢谢!谢谢!它工作完美。 – Guhh

0

如果您的选择对象上没有任何项目,我建议您将所有可能性加载到JavaScript哈希中。在这种情况下,使用您的PHP程序来创建并填充此散列。一旦用户改变第一选择要素,你调用一个函数来填充第二选择,使​​用这样的事情:

<html> 
<body> 

<script language=JavaScript> 

//new hash is created 
var area_prof = new Object(); 

// hash is being populated 
area_prof["f"] = new Array("1.1","1.2","orange"); 
area_prof["s"] = new Array("2.1","2.2","white"); 
area_prof["t"] = new Array("3.1","3.2","3.3","hello world"); 

function populate() 
{ 
var value=document.getElementById("area").options[document.getElementById("area").selectedIndex].value; 

while (document.getElementById("prof").options[1]) 
    { 
    document.getElementById("prof").options[1] = null; 
    } 

for (var i=0; i<area_prof[value].length; i++) 
    { 
    document.getElementById("prof").options[i+1] = new Option(area_prof[value][i],i); 
    } 
} 

</script> 

<select name="area" id="area" onChange=populate()> 
    <option title="" value="">Select ...</option> 
    <option value="f">First</option> 
    <option value="s">Second</option> 
    <option value="t">third</option> 
</select> 

<select name="prof" id="prof"> 
    <option title="" value="">Select ...</option> 
</select> 

</body> 
</html> 

但如果你真的想/需要创建另一个HTTP请求到加载第二个组合框, AJAX是你所需要的:

https://api.jquery.com/jQuery.ajax/

最好的问候,

爱德华多·马亚

+0

不幸的是,我无法加载所有内容,因为它太重了。但非常感谢你! – Guhh