เนื่องจาก มีคนโพสถามไกนไว้ที่บอร์ดเยอะ วันนี้ผมเลยเอามาลงให้ แล้วครับ สำหรับ แฟนพันธ์แท้ เว็บ MindPHP.com โดยเฉพาะ ครับ
วิธีการ คือ เขียน PHP แทรกลงใจ javascript โดย ใช้ php
ในที่นี้จะใช้ MSSQL เป็น เป็นฐานข้อมูลนะครับ
ตอนนำไปใช้จริง ก็ สร้าง table ขึ้นมา 2 table ไว้เก็บ รหัสกับ ชื่อ ของ ทั้ง อำเภอ และ ตำบล โดยที่ table ตำบล ต้องเก็บ รหัสอำเภอ ด้วย ใคร ในมีปัญหาในการสร้าง ก็ ฝากถามไว้ที่บอร์ดได้ครับ
เมื่อสร้าง table แล้ว ใส่ ข้อมูล ทั้ง 2 ตารางแล้ว ก็ เขียน
php ติอต่อกับ database
แล้ว เอา โค้ด ด้านล้าง นี้ไปประยุคย์ใช้ได้เลยครับ
<script type=text/javascript >
var arrItems = new Array();
var arrItemsGrp = new Array();
var arrItemValue = new Array();
var arrItems2 = new Array();
var arrItemsGrp2 = new Array();
var arrItemValue2 = new Array();
<?
$sql11= "select * from tambon ";
$result11=mssql_query($sql11);
while($row11=mssql_fetch_row($result11)) {
$x=$x+1;
echo "x=".$x.";";
$aaa=$row11[2];
$tbn=$row11[1];
$tbi=$row11[0];
echo "a=".$aaa.";";
echo "b='".$tbn."';";
echo "c=".$tbi.";";
?>
arrItems2[x]=b;arrItemsGrp2[x]=a;arrItemValue2[x]=c;
<? }
?>
function selectChange(control, controlToPopulate, ItemArray, GroupArray){
var myEle ;
var x ;
for (var q=controlToPopulate.options.length;q>=0;q--) controlToPopulate.options[q]=null;
myEle = document.createElement("option") ;
myEle.value = " ";
myEle.text = " -- เลือกอำเภอ/เขต -- " ;
controlToPopulate.add(myEle) ;
for ( x = 0 ; x < ItemArray.length ; x++ )
{
if ( GroupArray[x] == control.value )
{
myEle = document.createElement("option") ;
myEle.value = arrItemValue[x];
myEle.text = ItemArray[x] ;
controlToPopulate.add(myEle) ;
}
}
controlToPopulate.focus();
}
function selectChange2(control2, controlToPopulate2, ItemArray2, GroupArray2){
var myEle ;
var x ;
for (var q=controlToPopulate2.options.length;q>=0;q--) controlToPopulate2.options[q]=null;
myEle = document.createElement("option") ;
myEle.value = " ";
myEle.text = " -- เลือกตำบล/แขวง -- " ;
controlToPopulate2.add(myEle) ;
for ( x = 0 ; x < ItemArray2.length ; x++ )
{
if ( GroupArray2[x] == control2.value )
{
myEle = document.createElement("option") ;
myEle.value = arrItemValue2[x];
myEle.text = ItemArray2[x] ;
controlToPopulate2.add(myEle) ;
}
}
controlToPopulate2.focus();
}
</script>
เมื่อ ได้ javascript ที่เก็บข้อมูล จากdatabase ไว้ในตัวแปลของ javascript แล้ว ก็ ถึง เวลานำไปใช้ล่ะครับ
อันนี้เป็น เลือก อำเภอ
< select name="home_amph" id="home_amph" size="1" style="width: 200px;" class="fieldselect" onChange='selectChange2(this, form1.home_tumbon, arrItems2, arrItemsGrp2);document.getElementById("h_amph").value=document.getElementById("home_amph").options[document.getElementById("home_amph").selectedIndex].text;'>
<?
$sql1= "select * from ampid ";
$result1=mssql_query($sql1);
while($row1=mssql_fetch_row($result1)) {
echo"<option value=".$row1[0].">".$row1[1]."</option>";
}
?>
< /select>
เลือกกตำบล ในอำเภอนั้นๆ
< select name="home_tumbon" size="1" class="fieldselect" id="home_tumbon" style="width: 180px;" onChange='document.getElementById("h_tumbon").value=document.getElementById("home_tumbon").options[document.getElementById("home_tumbon").selectedIndex].text;'>
< /select>
มีปัญหาโพสถามไว้ได้ที่
http://www.mindphp.com/modules.php?name=Forums&file=viewforum&f=6
ในตัวอย่าง นี้ ใช้ ฐานข้อมูลเป็น MSSQL นะครับ ใคร ใช้ เป็น MySql ก็ เปลี่ยน Function เกี่ยวกับการติดต่อฐานข้อมูล เป็น ของ MySql เอาเองนะครับ
ปล.ไว้ ว่างๆ จะ เอา แบบใช้ AJAX มาให้ดูครับ หรือถ้าใครทำไว้แล้วก็ เอามาลง บ้างนะครับ