2011-12-09 1 views
0

ただちにすばやく1つのドロップダウンボックスにデータをフィルタリングするためのものがあり、そのそれぞれが次のものに影響します。第二のドロップダウン選択されているものを私が欲しいドロップダウンボックスにPHPを入れます

のためにドロップダウン1社

が一度ダウン1ドロップ持っている

が一度ダウン3番目のドロップを選択し、その会社の支店が移入されますその支店のその会社のスタッフによって人口が集計されます。次に、検索を押すと、その1人のスタッフのデータを取得する必要があります。すべての情報は、一つのテーブルである

各スタッフは、私が使用してオートナンバー型idフィールドを持っている私が持っているテーブルには「stafflist」

の列があり、「会社」、「支店」と「staffname」と呼ばれている

"staffID" と呼ばれ、ルックアップとして

は、あなたがこれまでにおよそAJAX() OR jQuery聞いたことがあります任意の助け

よろしく Slowie

+1

私は正確に何を求めているのか分かりませんでしたか?どのようにクエリを書くか?どのようにドロップダウンを出力するのですか? – YuS

+0

私はあなたがJavascriptを使ってそれをしなければならないと思います。 PHP/MySQLのみを使用してドロップダウンをフィルタリングすることはできません。しかし、ユリが言ったように、この質問についてはより具体的なものにしてください。 –

+0

申し訳ありませんが、みんなええ、私は欲しいものを確かめることを忘れていました。ええ、私はこれを達成する方法を知りたいだけです。例は素晴らしいでしょう – slowie

答えて

1

これは簡単な例です。これはjavascriptソリューションです。私はこれを使用しており、それは完全に正常に動作します。このスクリプトは、国を選択すると、2番目のドロップダウンで対応する都市を入力する場合に機能します。あなたはいくつかのアイデアを取って、それぞれ3つのドロップダウンに対処できるあなたの場合にこれを使用することができます。

これは、国のドロップダウンです:

<?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という名前の別々のファイルを作成し、このようなコードの上にあるページに含めます:

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

crlist.jsのためのコード:

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> 

これは私自身のスクリプトであり、そして私はあなたが国や地域のテーブルを作成したと仮定してきました。しかし、db構造に従ってクエリや上記のコードを微調整する必要があります。あなたの場合、会社、支店、従業員用のテーブルを作成する必要があります。

これが役に立ちます。

0

いただきありがとうございますか!それらのリンクを先に参照してください。実際には、Ajaxまたはjqueryベースのドロップダウンボックスを使用する必要があります。あなたの夢を成功に導くことができます。 :)

your solutionのリンクを参照してください。

任意のヘルプはあなたが私を気軽にすることができ、必要に応じて...あなたのCommNetを1として

EDIT:

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"ではなく "ajax WITH jquery"ではないのですか? – Kaii

+0

確かにそうですね。 "AJAX OR jQuery"は異なるものであり、また異なる動作をするためです.THX。 – Chandresh

+0

ええ、助けがそれに問題がある私としてappriaciatedされるでしょう。私が必要とするのは、最初のドロップダウンで、別のcomanyを検索し、stafflistが現在2社の会社と30のレコードを持つようにグループ化することです。その会社idのすべてのスタッフを検索してブランチを表示し、 1人のスタッフの情報を入力してみましょう – slowie

関連する問題