2011-12-09 76 views
0

只是一个快速的即时通讯寻找填充三个下拉框过滤数据,他们每个人都将影响下一个。填充下拉框在php

什么,我要的是

降下来1具有公司

一次下拉1选择了第二个下拉填充了分支机构为公司

一旦选择了第三个下拉由该分支的该公司的工作人员填充,然后当我按搜索时,应该为该1名工作人员提取数据。所有的信息在一个表

表,我有被称为“stafflist”

列是“公司”,“支”和“staffname”每一位工作人员,我用的自动编号id字段一个名为 “STAFFID是” 查找

感谢您的帮助

问候 Slowie

+1

我不明白你到底在问什么?如何编写查询?如何输出下拉菜单? – YuS

+0

我认为你必须使用Javascript来做到这一点。您不能仅使用PHP/MySQL以这种方式过滤下拉列表。但是,正如尤里所说的,对这个问题要更具体些。 –

+0

抱歉,家伙是所有这一切,我忘了确定我想要的是在那里。是啊即时通讯只是想知道我该如何做到这一点,一个例子将是伟大的 – slowie

回答

1

让我们举个简单的例子,这是一个JavaScript解决方案。我正在使用它,它工作得很好。如果您在第二个下拉列表中选择一个国家/地区填充其相应的城市,此脚本将起作用。你可以采取一些想法,并将其用于你的情况,你可以分别处理三个下拉菜单。

这是国家下拉菜单:

<?php 
     $countrylist=mysql_query("SELECT * FROM country ORDER BY name ASC"); 
     echo "<select name='country' id='country' onchange=\"reload(this.form)\" title='Country e:g; United Kingdom,Pakistan'><option value='0'>Select Country</option>"; 
     while($clist=mysql_fetch_array($countrylist)) 
     { 
     echo "<option value='$clist[Name]'>$clist[Name]</option>"."<br/>"; 
     } 
     echo "</select>"; 
?> 

这是区域下拉菜单:

<select name="region" id="region" ></select> 

现在做一个名为crlist.js一个单独的文件,并将其包括在具有上述这样的代码页:对于crlist.js

<script type="text/javascript" src="crlist.js"> </script> 

代码:

var request = false; 
/*@cc_on @*/ 
/*@if (@_jscript_version >= 5) 
try { 
request = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
try { 
request = new ActiveXObject("Microsoft.XMLHTTP"); 
} catch (e2) { 
request = false; 
} 
} 
@end @*/ 
function fillSelect(country,path) { 
var url = path+"crlist.php?country=" + country; 
request.open("GET", url, true); 
request.onreadystatechange = go; 
request.send(null); 
} 

function go() { 
if (request.readyState == 4) { 
//if (request.status == 200) { 

var response = request.responseText; 

var list=document.getElementById("region"); 
      for (i = list.length - 1; i>=0; i--) { 
       list.remove(i); 
      } 
var records=response.split('|'); 
for (i=1; i<records.length; i++) { 
    //alert("rcord="+records[i]); 
    var record=records[i].split('*'); 
    var region=record[0]; 
    //alert("region="+region); 
    var regionid=record[1]; 
    //alert("regionid="+regionid); 
    var x=document.createElement('option'); 
    //var y=document.createTextNode(region); 
    x.text=region; 
    //x.value=region; 
    //alert(x.text); 
    //x.appendChild(y); 
    //list.appendChild(x); 
    list.options.add(x); 
    } 
    //} 
} 
} 

function initCs(path) { 

if (!request && typeof XMLHttpRequest != 'undefined') { 
request = new XMLHttpRequest(); 
} 
var country=document.getElementById('country'); 
    country.onchange=function() { 

     if(this.value!="Select") { 

      var list=document.getElementById("region"); 
      for (i = list.length - 1; i>=0; i--) { 
       list.remove(i); 
      } 
     //while (list.childNodes[0]) { 
     //list.removeChild(list.childNodes[0]); 
     //} 
     } 
     fillSelect(this.value,path); 
     //alert(this.value); 

    } 
//fillSelect(country.value); 
} 

现在创建一个名为crlist.php的单独文件。

crlist的代码。PHP:

<?php 
require_once 'yourconfigfile.php'; 

$cname = $_GET['country']; 

$query="select ID,Name from city where CountryCode=(select code from country where name='$cname') Order By Name ASC"; 
$res = mysql_query($query) or die(mysql_error()); 
while($region = mysql_fetch_array($res)){ 
    echo "<option value='".$region['Name']."'>".$region['Name']."</option>"; 
}  
?> 

现在添加其下拉菜单页面上下面的脚本:

<script type="text/javascript" src="crlist.js"> </script> 
<script> 
$(document).ready(function() { 

    initCs(""); 

}); 
</script> 

这是我自己的剧本,而且我认为你已经创建的国家和地区表。但你需要根据你的数据库结构调整查询和上面的代码。在你的情况下,你必须为公司,分支机构和员工创建表格。

希望这会有所帮助。

0

你有没有听说过AJAX()jQuery?如果不是的话,请先参考这些链接;实际上,为了您的任务,您需要使用Ajax或基于jquery的下拉框。这可以让你的梦想成功。 :)

请参考下面的链接your solution

如果需要的话,你可以随时问我任何帮助..

编辑按你的CommNet:

Step-1:- "SELECT company_id,company_name from company_table WHERE $condition "; 

Step-2:- Fill first drop down box with record of first query set. 

Step-3:- call jquery.ajax function onchange event of first drop down box in which call one 
php page i.e: getRecords.php. 

Step-4:- In getRecords.php page you need to get all the Branches of that company by passing company id in ajax and return a record array as response. 

Step-5:- Fill second drop down with these records and again onchange event call another jquery.ajax request for final drop down box and do all things same as Step-4. 

我认为它你需要的所有步骤。仍然有任何问题让我通知。

谢谢。

+0

会jquery也使用ajax?为什么“ajax OR jquery”而不是“jQuery with ajax”? – Kaii

+0

你确定..不是吗? “AJAX或jQuery”,因为两者是不同的东西,也有不同的作用.THX。 – Chandresh

+0

耶帮助将被视为即时通讯有麻烦。我需要的是第一个下拉菜单查找不同的comany并将它们分组为stafflist目前有两个公司的30条记录,然后它需要查找所有具有该公司id的员工并显示分支机构,然后最终显示与该分支机构的所有员工并让我把这些资料提供给一名工作人员 – slowie