2011-12-09 69 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