Tag Archive chosen

Byphunsanit

form ที่อยู่ไทย

จากเรื่องที่แล้ว ฐานข้อมูลระดับจังหวัด อำเภอ ตำบล และ ใส่ฟิลเตอร์ให้ select box มาต่อด้วยการสร้างฟอร์ม ไปใช้ส่งข้อมูล

เป็นธรรมดาที่การกรอกข้อมูลส่วนตัว ประวัติต่างๆ อาจจะต้องการหลายที่อยู่ เช่น ที่อยู่ตามทะเบียนบ้าน ที่อยู่ปัจจุบัน ที่ทำงาน ถ้าต้องมากำหนดตัวกรองให้ select box ที่ละตัวก็เสียเวลา แก้ได้โดยเปลี่ยนไปใช้ class แทน id และใช้ attribute data- แทนแต่ละกลุ่ม และใช้ ajax ดึงข้อมูลมาทำ chained เวลาที่เปลี่ยนตัเลือกในตัวแม่ ให้ใช้เอแจ็กซ์ดึงข้อมูลที่เกี่ยวข้องมาแสดง update แทนตัวเลือก option ตัวลูกที่มีอยู่เดิม

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>AJAX jQuery.chosen By Pitt Phunsanit</title>
<link href="chosen/chosen.min.css" rel="stylesheet" type="text/css">
</head>
<body>
<fieldset>
	<legend>บ้าน</legend>
	<select name="home_province" class="areasProvince chosen-select" data-area="home" style="width:200px;">
		<option value="64">กระบี่</option>
		<option value="1">กรุงเทพมหานคร</option>
		<option value="56">กาญจนบุรี</option>
		<option value="34">กาฬสินธุ์</option>
		<option value="49">กำแพงเพชร</option>
		<option value="28">ขอนแก่น</option>
		<option value="13">จันทบุรี</option>
		<option value="15">ฉะเชิงเทรา</option>
		<option value="11">ชลบุรี</option>
		<option value="9">ชัยนาท</option>
		<option value="25">ชัยภูมิ</option>
		<option value="69">ชุมพร</option>
		<option value="45">เชียงราย</option>
		<option value="38">เชียงใหม่</option>
		<option value="72">ตรัง</option>
		<option value="14">ตราด</option>
		<option value="50">ตาก</option>
		<option value="17">นครนายก</option>
		<option value="58">นครปฐม</option>
		<option value="36">นครพนม</option>
		<option value="19">นครราชสีมา</option>
		<option value="63">นครศรีธรรมราช</option>
		<option value="47">นครสวรรค์</option>
		<option value="3">นนทบุรี</option>
		<option value="76">นราธิวาส</option>
		<option value="43">น่าน</option>
		<option value="77">บึงกาฬ</option>
		<option value="20">บุรีรัมย์</option>
		<option value="4">ปทุมธานี</option>
		<option value="62">ประจวบคีรีขันธ์</option>
		<option value="16">ปราจีนบุรี</option>
		<option value="74">ปัตตานี</option>
		<option value="5">พระนครศรีอยุธยา</option>
		<option value="44">พะเยา</option>
		<option value="65">พังงา</option>
		<option value="73">พัทลุง</option>
		<option value="53">พิจิตร</option>
		<option value="52">พิษณุโลก</option>
		<option value="61">เพชรบุรี</option>
		<option value="54">เพชรบูรณ์</option>
		<option value="42">แพร่</option>
		<option value="66">ภูเก็ต</option>
		<option value="32">มหาสารคาม</option>
		<option value="37">มุกดาหาร</option>
		<option value="46">แม่ฮ่องสอน</option>
		<option value="24">ยโสธร</option>
		<option value="75">ยะลา</option>
		<option value="33">ร้อยเอ็ด</option>
		<option value="68">ระนอง</option>
		<option value="12">ระยอง</option>
		<option value="55">ราชบุรี</option>
		<option value="7">ลพบุรี</option>
		<option value="40">ลำปาง</option>
		<option value="39">ลำพูน</option>
		<option value="30">เลย</option>
		<option value="22">ศรีสะเกษ</option>
		<option value="35">สกลนคร</option>
		<option value="70">สงขลา</option>
		<option value="71">สตูล</option>
		<option value="2">สมุทรปราการ</option>
		<option value="60">สมุทรสงคราม</option>
		<option value="59">สมุทรสาคร</option>
		<option value="18">สระแก้ว</option>
		<option value="10">สระบุรี</option>
		<option value="8">สิงห์บุรี</option>
		<option value="51">สุโขทัย</option>
		<option value="57">สุพรรณบุรี</option>
		<option value="67">สุราษฎร์ธานี</option>
		<option value="21">สุรินทร์</option>
		<option value="31">หนองคาย</option>
		<option value="27">หนองบัวลำภู</option>
		<option value="6">อ่างทอง</option>
		<option value="26">อำนาจเจริญ</option>
		<option value="29">อุดรธานี</option>
		<option value="41">อุตรดิตถ์</option>
		<option value="48">อุทัยธานี</option>
		<option value="23">อุบลราชธานี</option>
	</select>
	<select name="home_city" class="areasCity chosen-select" data-area="home" style="width:200px;">
	</select>
</fieldset>
<fieldset>
	<legend>ที่ทำงาน</legend>
	<select name="office_province" class="areasProvince chosen-select" data-area="office" style="width:200px;">
		<option value="64">กระบี่</option>
		<option value="1">กรุงเทพมหานคร</option>
		<option value="56">กาญจนบุรี</option>
		<option value="34">กาฬสินธุ์</option>
		<option value="49">กำแพงเพชร</option>
		<option value="28">ขอนแก่น</option>
		<option value="13">จันทบุรี</option>
		<option value="15">ฉะเชิงเทรา</option>
		<option value="11">ชลบุรี</option>
		<option value="9">ชัยนาท</option>
		<option value="25">ชัยภูมิ</option>
		<option value="69">ชุมพร</option>
		<option value="45">เชียงราย</option>
		<option value="38">เชียงใหม่</option>
		<option value="72">ตรัง</option>
		<option value="14">ตราด</option>
		<option value="50">ตาก</option>
		<option value="17">นครนายก</option>
		<option value="58">นครปฐม</option>
		<option value="36">นครพนม</option>
		<option value="19">นครราชสีมา</option>
		<option value="63">นครศรีธรรมราช</option>
		<option value="47">นครสวรรค์</option>
		<option value="3">นนทบุรี</option>
		<option value="76">นราธิวาส</option>
		<option value="43">น่าน</option>
		<option value="77">บึงกาฬ</option>
		<option value="20">บุรีรัมย์</option>
		<option value="4">ปทุมธานี</option>
		<option value="62">ประจวบคีรีขันธ์</option>
		<option value="16">ปราจีนบุรี</option>
		<option value="74">ปัตตานี</option>
		<option value="5">พระนครศรีอยุธยา</option>
		<option value="44">พะเยา</option>
		<option value="65">พังงา</option>
		<option value="73">พัทลุง</option>
		<option value="53">พิจิตร</option>
		<option value="52">พิษณุโลก</option>
		<option value="61">เพชรบุรี</option>
		<option value="54">เพชรบูรณ์</option>
		<option value="42">แพร่</option>
		<option value="66">ภูเก็ต</option>
		<option value="32">มหาสารคาม</option>
		<option value="37">มุกดาหาร</option>
		<option value="46">แม่ฮ่องสอน</option>
		<option value="24">ยโสธร</option>
		<option value="75">ยะลา</option>
		<option value="33">ร้อยเอ็ด</option>
		<option value="68">ระนอง</option>
		<option value="12">ระยอง</option>
		<option value="55">ราชบุรี</option>
		<option value="7">ลพบุรี</option>
		<option value="40">ลำปาง</option>
		<option value="39">ลำพูน</option>
		<option value="30">เลย</option>
		<option value="22">ศรีสะเกษ</option>
		<option value="35">สกลนคร</option>
		<option value="70">สงขลา</option>
		<option value="71">สตูล</option>
		<option value="2">สมุทรปราการ</option>
		<option value="60">สมุทรสงคราม</option>
		<option value="59">สมุทรสาคร</option>
		<option value="18">สระแก้ว</option>
		<option value="10">สระบุรี</option>
		<option value="8">สิงห์บุรี</option>
		<option value="51">สุโขทัย</option>
		<option value="57">สุพรรณบุรี</option>
		<option value="67">สุราษฎร์ธานี</option>
		<option value="21">สุรินทร์</option>
		<option value="31">หนองคาย</option>
		<option value="27">หนองบัวลำภู</option>
		<option value="6">อ่างทอง</option>
		<option value="26">อำนาจเจริญ</option>
		<option value="29">อุดรธานี</option>
		<option value="41">อุตรดิตถ์</option>
		<option value="48">อุทัยธานี</option>
		<option value="23">อุบลราชธานี</option>
	</select>
	<select name="office_city" class="areasCity chosen-select" data-area="office" style="width:200px;">
	</select>
</fieldset>
<script src="../jQuery/jquery-2.1.3.min.js"></script>
<script src="chosen/chosen.jquery.min.js"></script>
<script>
$(function(){

	/* select box filter */
	$('.chosen-select').chosen();
	$('.areasProvince').chosen().change(function(){
		child = $('.areasCity[data-area="'+$(this).data('area')+'"]');
		html = Array('<option value="">--Select--</option>');
		parent_id = $(this).val();
		if(parent_id == ''){
			child.html(html)
		}
		else
		{
			$.ajax({
				"cache" : true,
				"dataType" : "json",
				"success" : function(datas){
					$.each(datas, function(key, item){
						html.push('<option value="'+item.value+'">'+item.text+'</option>');
					});
					child.html(html);
					child.trigger('chosen:updated');
				},
				"url" : "thailandJSON.php?subdivisions=amphur&parent_id="+parent_id
			});
		}
	});

})
</script>
</body>
</html>