พี่นิคช่วยแก้ไขโค้ดให้หน่อยครับ แก้ไขเองไม่ถูก

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

พี่นิคช่วยแก้ไขโค้ดให้หน่อยครับ แก้ไขเองไม่ถูก

 เลือกจังหวัด > อำเภอ > ตำบล

ตอนสมัครสมาชิกมันก็เลือกได้ปกติใช้งานได้ครับ

แต่คราวนี้ พอล็อกอินเข้าไป แก้ไขข้อมูลส่วนตัว แล้วดึงข้อมูลต่างๆตาม $_SESSTION[id_member];

้ข้อมูลทุกอย่างมาหมดครับ ติดตรง list box จังหวัด อำเภอ ตำบล ไม่รู้ว่าจะส่งข้อมูลเข้า ajax ยังไงครับพี่

อันนี้ select box นะครับ

จังหวัด

<select style="width:200px;" name="province" id="province" onChange="dochange('province');">
<option value="<?=$province?>" <? if($sql_member[province]==$province){echo"selected";}?>>--------------------------</option>
</select> 

อำเภอ

<select style="width:200px;" name="amphur" id="amphur" onChange="dochange('amphur');">
<option value="<?=$amphur?>">-------------------------------------------</option>
</select>

ตำบล

<select style="width:200px;" name="tumbon" id="tumbon">
<option value="<?=$tumbon?>">-------------------------------------------</option>
</select>

 

คำสั่ง ajax ครับ

function Inint_AJAX()
{
	try
	{
		return new ActiveXObject( "Msxml2.XMLHTTP" );
	}
	catch ( e )
	{
	};

	try
	{
		return new ActiveXObject( "Microsoft.XMLHTTP" );
	}
	catch ( e )
	{
	};

	try
	{
		return new XMLHttpRequest();
	}
	catch ( e )
	{
	};

	alert( "XMLHttpRequest not supported" );
	return null;
};

function dochange( obj )
{
	var req = Inint_AJAX();
	var province = document.getElementById( 'province' ).value;
	var tumbon = document.getElementById( 'tumbon' ).value;
	if ( obj && obj.name == 'province' ) //เมื่อทำการเลือที่จังหวัดมา ให้เคลียร์ค่าอำเภอ
	{
		var amphur = "";
	}
	else //เลือกรายการอื่น
	{
		var amphur = document.getElementById( 'amphur' ).value;
	};
	var data = "province=" + province + "&amphur=" + amphur + "&tumbon=" + tumbon;
	req.onreadystatechange = function()
	{
		if ( req.readyState == 4 )
		{
			if ( req.status == 200 )
			{
				var datas = eval( '(' + req.responseText + ')' ); // JSON
				document.getElementById( 'provinceDiv' ).innerHTML = datas[0].province;
				document.getElementById( 'amphurDiv' ).innerHTML = datas[0].amphur;
				document.getElementById( 'tumbonDiv' ).innerHTML = datas[0].tumbon;
			};
		};
	};
	req.open( "post" , "province.php" , true ); //สร้าง connection
	req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ); // set Header
	req.send( data ); //ส่งค่า
};

//โหลดครั้งแรก
window.onload = function()
{
	dochange( '' );
};

 

ไฟล์ province.php

header( "Expires: Sat, 1 Jan 2005 00:00:00 GMT" );
	header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )."GMT" );
	header( "Cache-Control: no-cache, must-revalidate" );
	header( "Pragma: no-cache" );
	//header( "content-type: application/x-javascript; charset=TIS-620" );
	header( "content-type: application/x-javascript; charset=utf-8" );

	$province = $_POST[province];
	$amphur = $_POST[amphur];
	$tumbon = $_POST[tumbon];
	include('../conf/connect.php');
	//ให้คืนค่าจังหวัดไว้เป็นอันดับแรก
	
	$sql = "SELECT id, name FROM province";
	$result = mysql_query( $sql );
	echo "[{"province":"";
	echo "<select style='width:200px;' name='province' id='province' onchange='dochange(this)'>";
	echo "<option value='0'>----------กรุณาเลือกจังหวัด----------</option>";
	while( $fetcharr = mysql_fetch_array( $result ) )
	{ 
		$id = $fetcharr[id];
		$name = $fetcharr[name];
		echo "<option value='$id'";
		if ( $province == $id ) //เลือกจังหวัดที่เลือกไว้
		{
			echo " selected='selected'";
		};
		echo ">$name</option>";
	};
	echo "</select>","amphur":"";

	echo "<select style='width:200px;' name='amphur' id='amphur' onchange='dochange(this)'>";
	//ถ้ามีการเลือกจังหวัดมาแล้วให้แสดงอำเภอต่อ
	if ( $province != "0" && $province != "" )
	{
		echo "<option value='0'>----------กรุณาเลือกอำเภอ----------</option>";
		$sql = "SELECT id, name FROM amphur WHERE provinceID='$province'";
		$result = mysql_query( $sql );
		while( $fetcharr = mysql_fetch_array( $result ) )
		{
			$id = $fetcharr[id];
			$name = $fetcharr[name];
			echo "<option value='$id'";
			if ( $amphur == $id ) //เลือกอำเภอที่เลือกไว้
			{
				echo " selected='selected'";
			};
			echo ">$name</option>";
		};
	}
	else
	{
		echo "<option value=''>-------------------------------------------</option>";
	};

	echo "</select>","tumbon":"";

	echo "<select style='width:200px;' name='tumbon' id='tumbon'>";

	//ถ้ามีการเลือกอำเภอมาแล้วให้แสดงตำบลต่อ
	if ( $amphur != "0" && $amphur != "" )
	{
		echo "<option value='0'>----------กรุณาเลือกตำบล----------</option>";
		$sql = "SELECT id, name FROM tumbon WHERE amphurID=$amphur";
		$result = mysql_query( $sql );
		while( $fetcharr = mysql_fetch_array( $result ) )
		{
			$id = $fetcharr[id];
			$name = $fetcharr[name];
			echo "<option value='$id'";
			if ( $tumbon == $id ) //เลือกตำบลที่เลือกไว้
			{
				echo " selected='selected'";
			};
			echo ">$name</option>";
		};
	}
	else
	{
		echo "<option value=''>-------------------------------------------</option>";
	};
	echo "</select>"}]";

 

ผมรบกวนพี่หน่อยนะครับจำเป็นต้องใช้จริงๆครับพี่

ขอบคุณม๊ากมากครับ



Cpuhost 18-10-2010 01:26:26

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

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


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


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

 ความคิดเห็นที่ 1

 ลืมเอารูปภาพให้ดูครับ



cpuhost 18-10-2010 01:27
 ความคิดเห็นที่ 2

 ตอนแก้ไข ก็ query ข้อมูลตามที่เก็บมาแสดงเลย

อำเภอ ก็ query ตามเงื่อนไขจังหวัดที่เก็บในฐานข้อมูล ถ้า id ตรงกัน ก็ให้กำหนด selected 
ตำบลก็ทำเหมือนกับอำเภอ


Ninenik 18-10-2010
 ความคิดเห็นที่ 3

 โหพี่ ผมเรียกใช้ตัวแปรผิดแก้ไขจน งง พอมานั่งพักสายตาแล้วเริ่มไล่โค้ดใหม่ เจอเลยเต็มๆ

ประกาศตัวแปรผิด

ขอบคุณมากครับพี่



cpuhost 18-10-2010 22:14
 ความคิดเห็นที่ 4

เคยเจอเหมือนกันคับ ที่จดจ้องอะไรนานๆ แล้วทำมันไม่ได้

พอหันไปทำอย่างอื่นที่มันแก้เครียดแล้วกลับมาดูมันอีกรอบก็คิดออกหรือว่าแก้ไขได้



Pickza 19-10-2010 16:16
1






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