基本的な考え方は、JS で選択コントロールのオプションを動的に作成し、SQL データベースから取得した州と都市の情報を Ajax を介して取得するというものです。 コードは少し長いですが、メソッドなど多くは似ています。 JS で州、市、地区を取得する方法 同様に、PHP では、さまざまなパラメータを通じてさまざまな選択ステートメントが実行されます。 index.html コード: コードをコピーします コードは次のとおりです: "http://www.w3.org /TR/xhtml1 /DTD/xhtml1-transitional.dtd">三-州と市区町村間のレベルの連携 <br></head> <p></p> <p><div id="説明"><br><select style="width:100px; " onchange="sech(this.id)" id="sheng"><br><option value="province"> ;都道府県を選択してください</option><br></select><br><select onchange="sech(this.id)" id="shi"><br><option value="city">を選択してください市区町村</option> </div><br> <br></div><br></body><br></html><br></p> <p> <br>thumbnails.js コード: <br> <br></p> </div> <p>コードをコピーします</p> <p> コードは次のとおりです:</p> <div class="codetitle"> <div class="code" id="code19478"> <br>window.onload = getProvince;<br><br>function createRequest() {//Ajax には PHP 対話用のオブジェクトが必要です<br> try {<br> request = new XMLHttpRequest();// 新しいリクエスト オブジェクトを作成します;<br> } catch (tryMS) { <br> {<br> request = new ActiveXObject("Msxml2. request = null ;<br>戻りリクエスト; ="sheng"){<br> getCity(aa.value);//ここで aa.value は州の ID です<br>}<br>if(id= ="shi")<br>{<br>getCounty(aa.value);//ここで aa .value は都市の ID です<br>}<br><br>}<br><br>function getProvince() {//すべての州を取得します<br> request = createRequest();<br> if (request == null) {<br>alert("Unable to create request"); <br> return;<br> }<br> var url= "getDetails.php?ID=0";//ID=0 が PHP に渡されると、すべての州を取得します<br> request.open("GET", url, true);<br> request .onreadystatechange = displayProvince; // コールバック関数を設定します<br> request.send(null) // リクエストを送信します<br>}<br><br>function getCity (id){// 州に対応する都市を取得します<br> request = createRequest();<br> if (request == null) {<br>alert("リクエストを作成できません");<br> return;<br> }<br> var url= " getDetails.php?ID= +エスケープ(id);<br> request.open("GET", url, true);<br> request.onreadystatechange = displayCity;<br> request.send(null);<br>}<br><br>function getCounty(id) ){//都市に対応する地区を取得します<br> request = createRequest();<br> if (request == null) {<br>alert("リクエストを作成できません");<br> return;<br> }<br> var url= "getDetails. php?ID= +エスケープ(id);<br> request.open("GET", url, true);<br> request.onreadystatechange = displayCounty;<br> request.send(null);<br>}<br><br> <br>function displayProvince() { //取得したデータを select に動的に追加します<br> if (request.readyState == 4) {<br> if (request. status == 200) {<br> var a=new Array;<br>var b=request.responseText;// PHP から b<br> に返されるデータ a=b.split(",");//「,」を渡す このデータは配列 a<br> document.getElementById("sheng").length=1;<br> var obj=document に格納されます.getElementById("sheng'); <br> for(i=0;i<br> obj.options.add( new Option(a[i],i+1)); // OPTION を動的に生成し、選択に追加します。パラメータは Text で、2 番目のパラメータは Value. status == 200) {<br> var a=new Array;<br>var b=request.responseText ;<br> a=b.split(",");<br> document.getElementById("shi").length=1;//再選択<br> document.getElementById("xian").length=1;//再選択<br> if(document.getElementById("sheng").value!="province"){<br> var obj=document.getElementById('shi'); <br> for(i=0;i<br> ) obj.options.add(new Option( a[i], document.getElementById("sheng").value*100+i+1)); //ocument.getElementById(" sheng").value*100+i+1 は都市 ID に対応します。 <br>}<br><br> }<br> }<br>}<br><br>function displayCounty() {//取得したデータをselect<br> if (request.readyState == 4) {<br> if (request.status == 200) {<br> var a = new Array;<br>var b=request.responseText;<br> a=b.split(",");<br>document.getElementById("xian").length=1;<br>if(document.getElementById("sheng").value !="province"&&document.getElementById("shi").value!="city"){<br> var obj=document.getElementById('xian'); <br> for(i=0;i<br> obj.options.add (新しいオプション(a[i],i+1001)); <br>getDetails.php コード: <br> <br><br><br><br>コードをコピーします<br><br> コードは次のとおりです:<br><div class="code" id="code97452"> <br><?php<BR>header("Content-Type: text/html; charset=gb2312");<BR>$conn = new COM("ADODB.Connection") または die("ADO を開始できません");<BR>$connstr = "プロバイダー = SQLOLEDB;永続セキュリティ情報 = False;ユーザー ID = root;パスワード = 123456;初期カタログ = エリア;データ ソース = localhost";</P> <P>if($_REQUEST['ID']==0){//州のリストを取得します<BR>$conn->Open($connstr) //データベース接続を確立します<br>$sqlstr = "州から名前を選択します" ; // クエリ文字列を設定します<br>$rs = $conn->Execute($sqlstr) // クエリを実行して結果を取得します<br>$num_cols = $rs->Fields->Count();データセットの列数を取得します<br> $Province=array();<br>$i=0;<br>while (!$rs->EOF) {<br>$Province[$i]=$rs->Fields['name ']->Value." ,";<br>$rs->MoveNext();<br>$i++;<br>}<br>foreach($Province as $val)<br>echo $val;<br>$conn->Close() ;<br>$rs = null;<br> $conn = null;<br>} <p>if($_REQUEST['ID']>0&&$_REQUEST['ID']<35){// 州に対応する都市のリストを取得します<BR>$conn->Open($connstr); //データベース接続を確立します <br>$sqlstr = "select name from City where cid=".$_REQUEST['ID'] //クエリ文字列を設定します <br>$rs = $conn->Execute($sqlstr); //実行結果を取得するクエリ<br> $num_cols = $rs->Fields->Count(); //データセット内の列数を取得します<br>$City=array();<br>$i=0;<br>while (!$rs->EOF) {<br> $City[$i]=$rs->フィールド['name']->値。",";<br>$rs->MoveNext();<br>$ i++;<br>}<br>foreach($City as $ val)<br>echo $val;<br>$conn->Close();<br>$rs = null;<br>$conn = null;<br>}</p> <p>if($_REQUEST['ID']>100){//州と市に対応する郡のリストを取得します<br>$conn->Open($connstr) //データベース接続を確立します<br>$sqlstr = "select name from County where cid=".$_REQUEST['ID'] //クエリ文字列を設定します<br>$rs = $conn->Execute($sqlstr); //クエリを実行して結果を取得します<br>$ num_cols = $rs->Fields ->Count(); //データセット内の列数を取得します<br>$County=array();<br>$i=0;<br>while (!$rs->EOF ) {<br>$County[$i]=$rs ->Fields['name']->Value.",";<br>$rs->MoveNext();<br>$i++;<br>}<br>foreach($ $val)<br>echo $val;<br>$ conn->Close();<br>$rs = null;<br>$conn = null;<br>}<br>?><br></p> </div> <p>データベース設計、テーブル 州テーブル、市テーブル、郡テーブル。 <br>要件: 省テーブルには ID と名前が必要です。ID は 1 ~ 34 であることが推奨されます。たとえば、北京 ID は 1、広東省 ID は 2 などです。<br> 市テーブルには ID、名前が必要です。たとえば、cid が 2 の場合、深センの id は 201 になります。 <br> County テーブルには id、name、cid が必要です。これは 3 レベルの関係であるため、id は 10001 から任意に増やすことが推奨されます。たとえば、宝安区の cid は 201、龍崗区の cid も 201 です。 </p>スクリーンショット: <p> </p> HTML 効果: <p> </p> <p><img src="http://www.bkjia.com/uploads/allimg/140525/002Q934D-0.jpg?2014423104932" alt="PHP+Mysql+Ajax+JSで道州市の3階層連携を実現_PHPチュートリアル" > </p>完了後の結果: <p> </p> <p><img src="http://www.bkjia.com/uploads/allimg/140525/002Q91261-1.jpg?2014423105012" alt="PHP+Mysql+Ajax+JSで道州市の3階層連携を実現_PHPチュートリアル" > </p> <p><img src="http://www.bkjia.com/uploads/allimg/140525/002Q95017-2.jpg?2014423105045" alt="PHP+Mysql+Ajax+JSで道州市の3階層連携を実現_PHPチュートリアル" > </p> <p><img src="http://www.bkjia.com/uploads/allimg/140525/002Q912B-3.jpg?2014423105113" alt="PHP+Mysql+Ajax+JSで道州市の3階層連携を実現_PHPチュートリアル" > </p>注: PHP はサーバー側であり、Web サイトを公開した後、IP を通じてデバッグすることをお勧めします。 <p> </p> <p align="left"></p> <div style="display:none;">http://www.bkjia.com/PHPjc/774993.html<span id="url" itemprop="url"></span>www.bkjia.com<span id="indexUrl" itemprop="indexUrl"></span>本当<span id="isOriginal" itemprop="isOriginal"></span>http://www.bkjia.com/PHPjc/774993.html<span id="isBasedOnUrl" itemprop="isBasedOnUrl"></span>技術記事<span id="genre" itemprop="genre"></span>基本的な考え方は、JS で選択コントロールのオプションを動的に作成し、Ajax を介して PHP の SQL データベースから取得した州と市の情報を取得するというものです。 コードは少し長いですが、多くは似ています。 JS...<span id="description" itemprop="description"></span> </div> </div> <div class="art_confoot"></div> </div>