ขอสอบถามเกี่ยกกับ auto จังหวัด โดยใช้ Ajax

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอสอบถามเกี่ยกกับ auto จังหวัด โดยใช้ Ajax

ขอสอบถามเกี่ยกกับ auto จังหวัด โดยใช้ Ajax
คือได้โค้ดนี้มาค่ะ มันใช้ได้เลยค่ะ แต่สงสัยว่าทำไมรหัสไปรษณีย์มันถึงขึ้นซ้ำ อย่างเช่น จังหวัด สมุทรสาคร อำเภอ กระทุ่มแบน ตำบล อ้อมน้อย 74130 แต่มันกลับมีให้เลือก 74130 กับ 74110 ประมาน 10 อันได้ค่ะ ไม่ทราบเป็นที่เพราะอะไร งมหามาหลายวันแล้วค่ะ 

อันนี้คือโค้ดส่วน PHP ค่ะ
<?php
	require("mysql2json.class.php");
	$hostname_connection = "localhost";
	$database_connection = "crew35_1bigsea";
	$username_connection = "crew35_1bigsea";
	$password_connection = "1bigseA35";
	$connection = mysql_connect($hostname_connection, $username_connection, $password_connection) or trigger_error(mysql_error(),E_USER_ERROR); 
	mysql_query("SET character_set_results=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_connection=utf8");
	mysql_select_db($database_connection, $connection);
	
	$ID=$_GET[ID];
	$type=$_GET[TYPE];
	
	if($type=='Province'){
		$query="SELECT atp_id,atp_name_th FROM addr_thailand_provinces";
	}else if($type=='Area') {
		$query="SELECT ata_id,ata_name_th FROM addr_thailand_areas WHERE ata_fk_atp_id='".$ID."'";
	} else if($type=='District'){
		$query="SELECT atd_id,atd_name_th FROM addr_thailand_districts WHERE atd_fk_ata_id='".$ID."'";
	} else if($type=='Postcode'){
		$query="SELECT atz_code FROM addr_thailand_zipcodes WHERE atz_fk_ata_id='".$ID."'";	
	} 

	$result=mysql_query($query,$connection);
	$num=mysql_affected_rows();
	
	$json=new mysql2json;
	$data=$json->getJSON($result,$num);
	echo $data;
?>

อันนี้คือโค้ดในส่วนของ ajax.js ค่ะ
// JavaScript Document
$(document).ready(function(){
	// ส่วนของจังหวัดเมื่อมีการเปลี่ยนแปลง
	$("#Province").change(function(){
		$("#District").empty();//ล้างข้อมูล
		$("#Postcode").empty();//ล้างข้อมูล
		$("#DisID").val("");//ล้างข้อมูล
		$("#SubID").val("");//ล้างข้อมูล
		$("#PostID").val("");//ล้างข้อมูล
		$.ajax({
			  url: "getdata.php",//ที่อยู่ของไฟล์เป้าหมาย
			  global: false,
			  type: "GET",//รูปแบบข้อมูลที่จะส่ง
			  data: ({ID : $(this).val(),TYPE : "Area"}), //ข้อมูลที่ส่ง  { ชื่อตัวแปร : ค่าตัวแปร }
			  dataType: "JSON", //รูปแบบข้อมูลที่ส่งกลับ xml,script,json,jsonp,text
			  async:false,
			  success: function(jd) { //แสดงข้อมูลเมื่อทำงานเสร็จ โดยใช้ each ของ jQuery
							var opt="<option value="0" selected="selected">---เลือกอำเภอ---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["ata_id"] +"'>"+val["ata_name_th"]+"</option>"
    						});
							$("#Area").html( opt );//เพิ่มค่าลงใน Select ของอำเภอ
		   	  }
		});	
		$("#ProID").val($(this).val()); //กำหนดค่า ID ของจังหวัดที่เลือกให้กับ Textfield ของจังหวัด
	});
	
	///////////////
	
	$("#Province1").change(function(){
		$("#District1").empty();//ล้างข้อมูล
		$("#Postcode1").empty();//ล้างข้อมูล
		$("#DisID").val("");//ล้างข้อมูล
		$("#SubID").val("");//ล้างข้อมูล
		$("#PostID").val("");//ล้างข้อมูล
		$.ajax({
			  url: "getdata.php",//ที่อยู่ของไฟล์เป้าหมาย
			  global: false,
			  type: "GET",//รูปแบบข้อมูลที่จะส่ง
			  data: ({ID : $(this).val(),TYPE : "Area"}), //ข้อมูลที่ส่ง  { ชื่อตัวแปร : ค่าตัวแปร }
			  dataType: "JSON", //รูปแบบข้อมูลที่ส่งกลับ xml,script,json,jsonp,text
			  async:false,
			  success: function(jd) { //แสดงข้อมูลเมื่อทำงานเสร็จ โดยใช้ each ของ jQuery
							var opt="<option value="0" selected="selected">---เลือกอำเภอ---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["ata_id"] +"'>"+val["ata_name_th"]+"</option>"
    						});
							$("#Area1").html( opt );//เพิ่มค่าลงใน Select ของอำเภอ
		   	  }
		});	
		$("#ProID").val($(this).val()); //กำหนดค่า ID ของจังหวัดที่เลือกให้กับ Textfield ของจังหวัด
	});
	
	// ส่วนของอำเภอเมื่อมีการเปลี่ยนแปลง
	$("#Area").change(function(){
		$("#District").empty();
		$("#Postcode").empty();
		$("#SubID").val("");
		$("#PostID").val("");
		$.ajax({
			  url: "getdata.php",
			  global: false,
			  type: "GET",
			  data: ({ID : $(this).val(),TYPE : "District"}),
			  dataType: "JSON",
			  async:false,
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกตำบล---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atd_id"] +"'>"+val["atd_name_th"]+"</option>"
    						});
							$("#District").html( opt );
		   	  }
		 });
		 $("#DisID").val($(this).val());
	});
	
	/////////////
	
	$("#Area1").change(function(){
		$("#District1").empty();
		$("#Postcode1").empty();
		$("#SubID").val("");
		$("#PostID").val("");
		$.ajax({
			  url: "getdata.php",
			  global: false,
			  type: "GET",
			  data: ({ID : $(this).val(),TYPE : "District"}),
			  dataType: "JSON",
			  async:false,
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกตำบล---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atd_id"] +"'>"+val["atd_name_th"]+"</option>"
    						});
							$("#District1").html( opt );
		   	  }
		 });
		 $("#DisID").val($(this).val());
	});
	
	// ส่วนของตำบลเมื่อมีการเปลี่ยนแปลง
	$("#District").change(function(){
		$("#PostID").val("");
		$.ajax({
			  url: "getdata.php",
			  type: "GET",
			  data: ({ID : $("#Area").val(),TYPE : "Postcode"}),
			  dataType: "JSON",
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกรหัสไปรษณีย์---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atz_code"] +"'>"+val["atz_code"]+"</option>"
    						});
							$("#Postcode").html( opt );
		   	  }
		 });
		 $("#SubID").val($("#District").val());
	});
	// ส่วนของรหัสไปรษณีย์เมื่อมีการเปลี่ยนแปลง
	$("#Postcode").change(function(){
		$("#PostID").val($(this).val());
	});
	
	////////////
	
	$("#District1").change(function(){
		$("#PostID").val("");
		$.ajax({
			  url: "getdata.php",
			  type: "GET",
			  data: ({ID : $("#Area1").val(),TYPE : "Postcode"}),
			  dataType: "JSON",
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกรหัสไปรษณีย์---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atz_code"] +"'>"+val["atz_code"]+"</option>"
    						});
							$("#Postcode1").html( opt );
		   	  }
		 });
		 $("#SubID").val($("#District1").val());
	});
	// ส่วนของรหัสไปรษณีย์เมื่อมีการเปลี่ยนแปลง
	$("#Postcode1").change(function(){
		$("#PostID").val($(this).val());
	});
	
});
//ส่วนของ function เพื่อเพิ่มข้อมูลจังหวัดเข้าไปก่อน
function Add(){
		$.ajax({
			  url: "getdata.php",
			  global: false,
			  type: "GET",
			  data: ({TYPE : "Province"}),
			  dataType: "JSON",
			  async:false,
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกจังหวัด---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atp_id"] +"'>"+val["atp_name_th"]+"</option>"
    						});
							$("#Province").html( opt );
		   	  }
		});
		
		///////////
		
		$.ajax({
			  url: "getdata.php",
			  global: false,
			  type: "GET",
			  data: ({TYPE : "Province"}),
			  dataType: "JSON",
			  async:false,
			  success: function(jd) {
							var opt="<option value="0" selected="selected">---เลือกจังหวัด---</option>";
							$.each(jd, function(key, val){
								opt +="<option value='"+ val["atp_id"] +"'>"+val["atp_name_th"]+"</option>"
    						});
							$("#Province1").html( opt );
		   	  }
		});
}

อันนี้คือ Database จากตาราง Zipcode ค่ะ


Chickenkook 15-10-2015 11:32:40

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ดูเงื่อนไข คำสั่ง sql วาถูกไหม เช่น เราเลือกจากเลื่อนไขตำบลหรือเปล่า บางที
ไปดึงข้อมูลอิงอำเภอ ซึ่งในหนึ่งอำเภออาจมีหลายตำบล ทำให้มีตัวเลือก รหัสไปรษณีย์หลายค่า


ninenik 15-10-2015
 ความคิดเห็นที่ 2
ค่ะ แต่พอดึงจากการอ้างอิงเป็น ตำบลแล้ว รหัสไปรษณีย์จะขึ้นผิดค่ะ เช่น จังหวัดสมุทรสาคร อำเภอ กระทุ่มแบน ตำบล อ้อมน้อย รหัสไปรษณีย์คือ 74130 แต่พออ้างอิงเป็นตำบลปุ๊บ รหัสำไปรษณีย์กลายเป็น 15170 ซึ่งมันไปขึ้นของจังหวัดอื่นค่ะ มันไม่ตรงเลย


chickenkook 16-10-2015 12:34
 ความคิดเห็นที่ 3
ตารางข้อมูลอาจไม่ถูกต้อง ดูเนื้อหานี้เป้นแนวทาง

ใช้ ajax ประยุกต์ดึงข้อมูล จังหวัด อำเภอ ตำบล รหัสไปรษณีย์ในประเทศไทย 


ninenik 16-10-2015
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ