15 สิงหาคม 2554

ตัวอย่าง โค้ด เลือก ภาค จังหวัด อำเภอ ตำบล แบบต่อเนื่องกัน

หลังจากได้ดู โค้ด ตัวอย่างการ เลือก ภาค จังหวัด อำเภอ ตำบล จากหลาย ๆ ที่ ก็เลยมีแนวคิดว่าควรเขียนไว้เพื่อเตือนความจำตัวเอง เผื่ออนาคตหลง ๆ ลืม ๆ มันไปเสีย จะได้ค้นหาง่าย ซักหน่อย

ก่อนอื่นทำการโหลดคลาส mysql2json.class.php จาก

http://snipplr.com/view/18162/ หรือ
http://code.google.com/p/evalactisem/source/browse/trunk/www/library/php/mysql2json.class.php?spec=svn539&r=539

แล้วทำการเขียนไฟล์ ตัวอย่างเพื่อทำการ ดึง ภาค จังหวัด อำเภอ และตำบล

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$('#ddlGeo').change(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: "data.php",
data: {geo_id: $(this).val()},
success: function(data){

var opt = '<option value="0">-- เลือกจังหวัด --</option>';
for(var i =0; i<data.length; i++){
opt += '<option value="'+data[i].province_id+'">'+data[i].province_name+'</option>';
}
$('#ddlProvince').html( opt );

}
});

});

$('#ddlProvince').change(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: "data.php",
data: {province_id: $(this).val()},
success: function(data){

var opt = '<option value="0">--เลือกอำเภอ --</option>';
for(var i =0; i<data.length; i++){
opt += '<option value="'+data[i].amphur_id+'">'+data[i].amphur_name+'</option>';
}
$('#ddlAmphur').html( opt );

}
});

});

$('#ddlAmphur').change(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: "data.php",
data: {amphur_id: $(this).val()},
success: function(data){

var opt = '<option value="0">--เลือกตำบล --</option>';
for(var i =0; i<data.length; i++){
opt += '<option value="'+data[i].district_id+'">'+data[i].district_name+'</option>';
}
$('#ddldistrict').html( opt );

}
});

});

});
</script>
<title>ตัวอย่างโค้ด เลือก ภาค จังหวัด อำเภอ ตำบล </title>

<?php
$objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database");
$objDB = mysql_select_db("geo");
@mysql_query("SET NAMES UTF8");
?>
</head>
<form name="frmMain" action="test.php" method="post">
ภาค :
<select id="ddlGeo" name="ddlGeo">
<option select value="0">-- เลือกภาค --</option>
<?
$strSQL = "SELECT * FROM geography ORDER BY geo_id ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
?>

<option value="<?=$objResult["geo_id"];?>"><?=$objResult["geo_name"];?></option>
<?
}
?>
</select>

จังหวัด :
<select id="ddlProvince" name="ddlProvince" style="width:120px">
<option value="0">--เลือกจังหวัด --</option>
</select>

อำเภอ :
<select id="ddlAmphur" name="ddlAmphur" style="width:200px">
<option value="0">--เลือกอำเภอ --</option>
</select>

ตำบล :
<select id="ddldistrict" name="ddldistrict" style="width:200px">
<option value="0">--เลือกตำบล --</option>
</select>
<input type="submit" name="button" id="button" value="Submit" />
</form>

</body>
</html>
<?
mysql_close($objConnect);
?>


ไฟล์ data.php เพื่อดึงข้อมูลออกมาแสดง

<?php
include('mysql2json.class.php'); //+ แทรกไฟล์ mysql2json.class.php เพื่อใช้งานคลาส

$objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database");
$objDB = mysql_select_db("geo");
mysql_query("SET NAMES UTF8");

if($_POST['geo_id'] != ''){

$strSQL = "SELECT province_id, province_name FROM province WHERE geo_id = '".$_POST['geo_id']."' ORDER BY province_id ASC ";
$rs_province = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$num = mysql_affected_rows();

$json = new mysql2json();
echo $json->getJSON($rs_province, $num);
}

if($_POST['province_id'] != ''){

$strSQL = "SELECT amphur_id, amphur_name FROM amphur WHERE province_id = '".$_POST['province_id']."' ORDER BY amphur_id ASC ";
$rs_amphur = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$num = mysql_affected_rows();

$json = new mysql2json();
echo $json->getJSON($rs_amphur, $num);
}

if($_POST['amphur_id'] != ''){

$strSQL = "SELECT district_id, district_name FROM district WHERE amphur_id = '".$_POST['amphur_id']."' ORDER BY district_id ASC ";
$rs_district = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$num = mysql_affected_rows();

$json = new mysql2json();
echo $json->getJSON($rs_district, $num);
}http://www.blogger.com/img/blhttp://www.blogger.com/img/blank.gifank.gif

?>

ฐานข้อมูล จังหวัดทั้งหมด จาก : http://www.thaicreate.com/free-web-script/thailand-province-database.html

และ http://www.thaicreate.com/community/dependant-listmenu-dropdownlist.html

อ่านเพิ่มเติมได้ที่เว็บ select2web.com : http://www.select2web.com/php/chain-select.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น