Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > Dependent ListMenu // จะ save ข้อมูลเป็น GEO_NAME, PROVINCE_NAME, AMPHUR_NAME ยังไงครับ



 

Dependent ListMenu // จะ save ข้อมูลเป็น GEO_NAME, PROVINCE_NAME, AMPHUR_NAME ยังไงครับ

 



Topic : 031191



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์




ผมลองทำดูแล้วแต่ผมต้องการ save GEO_NAME, PROVINCE_NAME, AMPHUR_NAME แต่ code ที่ให้มาจะเก็บข้อมูลเป็น ID , หลังจากนั้นในหน้าแสดงผลผมจะทำ list menu ให้ search ข้อมูลยังไงครับ


Dependant ListMenu หัวข้อนี้ผมได้เขียน Script เกี่ยวกับการสร้าง Dependent ข้อมูลใน ListMenu/Dropdownlist โดยในตัวอย่างผมได้แสดงรายชื่อภาค เมื่อเลือกรายชื่อภาคก็จะแสดงรายชื่อจังหวัด และรายชื่ออำเภอเมื่อในการเลือกแต่ล่ะจังหวัด โดยมีให้เลือกทั้ง ASP และ PHP ครับ


Screen Shorts



Download Thailand Database

https://www.thaicreate.com/free-web-script/thailand-province-database.html



การทำงานในส่วนของ Dependent จะใช้ JavaScript เข้ามาช่วยทั้งหมดครับ โดยจะทำการโหลดข้อมูลทั้งหมดเข้ามาเก็บไว้ใน Array ของ JavaScript และแสดงผลในเงื่อนไขที่กำหนด

PHP & MySQL

DependantListMenu.php

<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("thailand");
@mysql_query("SET NAMES UTF8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ThaiCreate.Com ListMenu</title>
<script language = "JavaScript">

//**** List Province (Start) ***//
function ListProvince(SelectValue)
{
frmMain.ddlProvince.length = 0
frmMain.ddlAmphur.length = 0

//*** Insert null Default Value ***//
var myOption = new Option('','')
frmMain.ddlProvince.options[frmMain.ddlProvince.length]= myOption

<?
$intRows = 0;
$strSQL = "SELECT * FROM province ORDER BY PROVINCE_ID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
$intRows++;
?>
x = <?=$intRows;?>;
mySubList = new Array();

strGroup = <?=$objResult["GEO_ID"];?>;
strValue = "<?=$objResult["PROVINCE_ID"];?>";
strItem = "<?=$objResult["PROVINCE_NAME"];?>";
mySubList[x,0] = strItem;
mySubList[x,1] = strGroup;
mySubList[x,2] = strValue;
if (mySubList[x,1] == SelectValue){
var myOption = new Option(mySubList[x,0], mySubList[x,2])
frmMain.ddlProvince.options[frmMain.ddlProvince.length]= myOption
}
<?
}
?>
}
//**** List Province (End) ***//


//**** List Amphur (Start) ***//
function ListAmphur(SelectValue)
{
frmMain.ddlAmphur.length = 0

//*** Insert null Default Value ***//
var myOption = new Option('','')
frmMain.ddlAmphur.options[frmMain.ddlAmphur.length]= myOption

<?
$intRows = 0;
$strSQL = "SELECT * FROM amphur ORDER BY AMPHUR_ID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
$intRows++;
?>
x = <?=$intRows;?>;
mySubList = new Array();

strGroup = <?=$objResult["PROVINCE_ID"];?>;
strValue = "<?=$objResult["AMPHUR_ID"];?>";
strItem = "<?=$objResult["AMPHUR_NAME"];?>";
mySubList[x,0] = strItem;
mySubList[x,1] = strGroup;
mySubList[x,2] = strValue;

if (mySubList[x,1] == SelectValue){
var myOption = new Option(mySubList[x,0], mySubList[x,2])
frmMain.ddlAmphur.options[frmMain.ddlAmphur.length]= myOption
}
<?
}
?>
}
//**** List Amphur (End) ***//

</script>


</head>
<form name="frmMain" action="" method="post">
Geography
<select id="ddlGeo" name="ddlGeo" onChange = "ListProvince(this.value)">
<option selected value=""></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>

Province
<select id="ddlProvince" name="ddlProvince" style="width:120px" onChange = "ListAmphur(this.value)"></select>

Amphur
<select id="ddlAmphur" name="ddlAmphur" style="width:200px"></select>
</form>
</body>
</html>
<?
mysql_close($objConnect);
?>



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-09-02 16:43:32 By : rwisarut View : 1909 Reply : 15
 

 

No. 1



โพสกระทู้ ( 2,794 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


Quote:
แต่ code ที่ให้มาจะเก็บข้อมูลเป็น ID

ลองเอา id ไปคิวรี่ในฐานข้อมูลสิครับ






Date : 2009-09-02 16:57:05 By : panyapol
 


 

No. 2



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ... แต่ผมต้องการเก็บค่าในฐานข้อมูลเป็น ชื่อ จังหวัด อำเภอ ที่เราเลือก เพราะถ้ามันเก็บข้อมูลเป็นตัวเลขแล้ว เมื่อผม export ข้อมูลจะเป็นตัวเลขครับ ....
Date : 2009-09-03 08:13:32 By : rwisarut
 

 

No. 3



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


อยากทราบวิธีเหมือนกันอ่ะครับ เวลาผม save ก็จะเป็น ID เหมือนกัน อยากให้เป็น ชื่อจังหวัด,อำเภอ ที่เราเลือกอ่ะครับ ท่านผู้รู้รบกวนช่วยหน่อยนะครับ จนปัญญาจริงๆอ่ะ
Date : 2010-07-14 09:38:35 By : chulaleklek
 


 

No. 4



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


ddd
อยากทราบวิธีเหมือนกันอ่ะครับ เวลาผม save ก็จะเป็น ID เหมือนกัน อยากให้เป็น ชื่อจังหวัด,อำเภอ ที่เราเลือกอ่ะครับ ท่านผู้รู้รบกวนช่วยหน่อยนะครับ จนปัญญาจริงๆอ่ะ
ผมจะต้องแก้โค๊ดตรงที่วงไว้ เป็นอะไรหรอครับ
Date : 2010-07-14 09:41:40 By : chulaleklek
 


 

No. 5



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


คำถามอันนี้ ก็แนวๆเดียวกันกับคำถามของหนูเลยหล่ะ แต่ก็ยังไม่มีใครมาช่วยอ่ะะะะะ หนูตาลายมาเป็นอาทิตย์แล้วค่ะ หาข้อมูลจากเว็ปนี้มา สิบกว่าเพจแล้ว ก็ยังไม่เจอคำตอบจริงๆ
Date : 2010-07-15 15:22:11 By : keewa
 


 

No. 6

Guest


http://goldxp.thport.com/auto-province/example.php
http://firstmeditech.com/cakephp/post/jquery-multilevel-combobox
Date : 2010-07-16 07:38:59 By : num
 


 

No. 7



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


เก็บเป็น id น่ะถูกแล้วค่ะ
ถ้าคุณ export ไปคุณก้อ join query แล้ว output ออกเป็นชื่อ ตำบล อำเภอ จังหวัดไปดิคะ
จะ export ไปดิบๆทำไมเพราะชื่ออำเภอซ้ำกันหลายชื่อ ยิ่งตำบลนี่ซ้ำกันมหาศาล
จุดประสงค์ของ id คือระบุตำแหน่งของข้อมูลให้แน่นอน
พี่หนุ่มออกแบบมีวัตถุประสงค์ค่ะ ไม่ใช่เอาง่ายๆ เพื่อความสะดวกอย่างเดียว

แต่หากอยากจะให้มันเป็น ชื่อแทนที่จะเป็น id จะทำให้ก้อได้ค่ะ แต่ปัญหาหลังจากนี้
พวกคุณๆ ก็ไปแก้กันเองนะคะ

จากะซิบอีกอย่างฐานข้อมูลของพี่หนุ่มอะโบราณนิดๆค่ะ
เข้าใจว่ามาจากกรมการปกครองแต่นั่นก้อนานมาละ แค่แขวงดินแดงยังไม่มีเลย
อำเภอ จังหวัดเกิดใหม่ก้อยังไม่ update
(หรือ update แล้วน้อ ให้ทายว่ายัง เพราะน่าจะยุ่งๆกะการช่วยคุณพี่แม่ชีเลือกชุดเด็กอยู่ค่ะ)
Date : 2010-07-16 07:48:12 By : blurEyes
 


 

No. 8

Guest


jquery auto province
ฐานข้อมูลผมไม่ได้ตกรุ่นขนาดนั้นครับ อิๆ

เป็นฐานข้อมูลที่ผมพยายามทำการดัดแปลงให้ดีและครบถ้วนที่สุด
เท่าที่จะคนธรรมดาๆ นึงไม่ได้มีส่วนเกี่ยวกับกรมแผนที่จะทำได้นะครับ

เริ่มต้นจากเอาฐานข้อมูลของพี่วิน
บวกกับฐานข้อมูลของคุณ deawx
บวกกับเว็บไซท์

Link

และทำการแก้ไขข้อมูลที่ไม่สมบูรณ์อย่างเช่นมี space เกินครับ

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

สำหรับการแทรกข้อมูล ตำบล อำเภอ รหัสไปรษณีย์ ไปดิบๆ ไม่ใช่ว่าจะไม่ดีนะครับ
จะช่วยให้การเขียนโปรแกรมสะดวกขึ้นมาก ไม่ต้องเสียเวลาเขียนโค้ด join สำหรับกรณีต่างๆ อีกเยอะหลายๆ โปรแกรมครับ
แล้วก็อย่างที่ว่าฐานข้อมูลมีโอกาสที่จะตกรุ่นได้ ถ้าเกิดมีรายชื่อ ตำบล อำเภอใหม่ๆ ขึ้นมาโปรแกรมไม่สนับสนุนแล้ว
การที่ให้พิมพ์ text input โดยตรงจะทำให้ช่วยในการแก้ปัญหานี้ไม่ต้องกังวลว่าผู้ใช้บางคนกรอกที่อยู่ตัวเองไม่ได้
Date : 2010-07-16 09:51:51 By : num
 


 

No. 9



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณน๊ะค๊ะที่ช่วยกันเข้ามาตอบให้ ก็ถูกอย่างที่คุณ blurEyes ว่ามาหล่ะค่ะ การเก็บเป็น id หน่ะก็ดีแล้ว แต่ที่หนูต้องการเนี๊ยะ คือหนูหาไม่เจอ หรือเขียนไม่เป็นจริงๆค่ะ ที่จะถอด id นั้น ให้ออกมาเป็นชื่อเลยอ่ะค่ะ หนูต้องการที่จะถอด id ของ จังหวัด อำเภอ ตำบล ให้ออกมาเป็น ชื่อของ จังหวัด อำเภอ ตำบล ไปเลยอ่ะค่ะ เพื่อที่จะเอาค่านั้นไปเก็บลงอีกตารางนึง แล้วเวลาเรียกใช้ก็จะไปดึงที่ตารางนั้นที่เก็บข้อมูลที่ผู้ใช้เลือก รายการของชื่อจังหวัด อำเภอ ตำบล อีกที นี่หล่ะค่ะที่หนูเขียนคำสั่งโปรแกรมนี้ไม่ได้ซักที เหมือนที่คุณ num บอกหล่ะค่ะ เพราะมันสะดวกขึ้นสำหรับการใช้งานในแบบโปรแกรมของหนู แต่ทั้งนี้ทั้งนั้นคือหนูไม่ได้เป็นโปรแกรมเมอร์และก็ไม่เคยเขียนโปรแกรมมาก่อน แต่ต้องมานั่งงมมันและต้องการให้มันออกมาอย่างงั้นจริงๆ หนูคิดว่าหนูทำได้ในระดับนึงที่หนูกำลังทำอยู่ก็รู้สึกว่าตัวเองเก่งขึ้นอีกละค่ะ(ถึงแม้อาจจะน้อยยยยยนิดก็ตาม หนูภูมิใจ อิอิ) ขอบคุณเว็ปนี้ และพี่ๆในนี้ด้วยค่ะ
Date : 2010-07-16 10:18:02 By : keewa
 


 

No. 10

Guest


Quote:
(หรือ update แล้วน้อ ให้ทายว่ายัง เพราะน่าจะยุ่งๆกะการช่วยคุณพี่แม่ชีเลือกชุดเด็กอยู่ค่ะ)


-*- แง่งๆ
Date : 2010-07-16 10:47:22 By : num
 


 

No. 11



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


อะนะคุนพี่หนุ่มว่าที่คุณพ่อคะ รีบๆทำงานเข้าค่ะ
มีอ้างอิงนี่ต้องมาแจงเชียว แหมๆๆ ดีเลยเดวจะอ้างถึงบ่อยๆละกันค่ะ
Quote:
สำหรับการแทรกข้อมูล ตำบล อำเภอ รหัสไปรษณีย์ ไปดิบๆ ไม่ใช่ว่าจะไม่ดีนะครับ

มันเร็วตรงไหนคะ เอา text มา join กันอย่างที่บอก ชื่ออำเภออะมีซ้ำ ชื่อตำบลอะเป็นร้อยชื่อที่ซ้ำค่ะ
ถ้าอยากให้ฐานข้อมูลยืดหยุ่นเพิ่มลดได้ ก้อทำ admin page มาจัดการดิคะ ไปฝังสนิทแนบแน่นไมละคะ
index id ก้อเร็วกว่า index กะ unicode อยู่แล้วค่ะ

Quote:
เป็นฐานข้อมูลที่ผมพยายามทำการดัดแปลงให้ดีและครบถ้วนที่สุด
เท่าที่จะคนธรรมดาๆ นึงไม่ได้มีส่วนเกี่ยวกับกรมแผนที่จะทำได้นะครับ

ไม่จิงค่ะไม่ใช้คนทำดาแระค่ะ เป็นว่าที่คุนพ่อก้อเห็นๆกันอยู่นิคะ
ถ้าทำดีแล้วก้อทำดีต่อไปค่ะ อย่าให้ขาดตกบกพร่องเชียวนะคะ

ก้อแนะนำคนที่อยากได้ให้ไป join table เอาค่ะ
ถ้าอยากได้ ชื่อ จังหวัด อำเภอ ตำบล เพราะไม่ได้ใช้ฐานข้อมูลของพี่หนุ่มตะไหนตะไรแล้วค่ะ
ตั้งกะเห็นแยกออกเป็น table จังหวัด อำเภอ ตำบล แบบแยกส่วนที่เห็นกันในฐานข้อมูล
ต้นแบบเก่าๆ ( อิอิ ) ที่ใช้อยู่ปัจจุบันจะ merge เป็น table เดียว ใช้โครงสร้างแบบ tree ค่ะ
เพื่อที่จะใช้วิธี load on demand แบบ ajax ได้แบบง่ายๆ

ไปค่ะพี่หนุ่มที่ไม่จาหนุ่มเหมือนชื่อแระ อิอิ เลือกชุดต่อนะคะ เด็กอ่อนใช้เสื้อผ้าเปลืองค่ะ
(เคยเลี้ยงหลานมาแล้วหลายคนค่ะ อิอิ)
Date : 2010-07-16 11:55:41 By : blurEyes
 


 

No. 12



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์



Date : 2010-07-16 12:41:23 By : keewa
 


 

No. 13

Guest


Quote:
มันเร็วตรงไหนคะ เอา text มา join กันอย่างที่บอก ชื่ออำเภออะมีซ้ำ ชื่อตำบลอะเป็นร้อยชื่อที่ซ้ำค่ะ
ถ้าอยากให้ฐานข้อมูลยืดหยุ่นเพิ่มลดได้ ก้อทำ admin page มาจัดการดิคะ ไปฝังสนิทแนบแน่นไมละคะ
index id ก้อเร็วกว่า index กะ unicode อยู่แล้วค่ะ


ฝังแบบ text ไปเวลาจะป้อนตำบลที่ไม่มีใน db จะได้ไม่ต้องเรียกใช้ admin ไงล่ะครับ

และพูดถึงเรื่องความเร็วตารางที่ต้อง join กับไม่ต้อง join ถ้า select ข้อมูลฟิลด์เท่าๆ กัน
ตารางที่ไม่ join ส่วนใหญ่จะเร็วกว่าครับ ยิ่ง join มากส่วนใหญ่จะยิ่งช้านะครับ
Date : 2010-07-16 12:52:39 By : num
 


 

No. 14



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ยังไง้ยังไงก้อต้อง join อะค่ะ ถ้าจะทำข้อมมูลที่อยู่แยกเป็นจังหวัด อำเภอ แล้วต้องการนำมาทำสารสนเทศ
ถ้ากรอกเจ๋ยๆ เอ้อ text field ก้อพอแล้วค่ะ ถ้าใช้ design table แบบ tree ไม่ต้อง join เหมือนกันแหละ
speed ปริ้ดรุยค่ะ
Date : 2010-07-16 14:25:12 By : blurEyes
 


 

No. 15



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


หนูคงจะโง่มากเลยอ่ะ พี่สองคนเถียงไรกัน หนูไม่เข้าใจเลย
Date : 2010-07-16 19:36:18 By : keewa
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Dependent ListMenu // จะ save ข้อมูลเป็น GEO_NAME, PROVINCE_NAME, AMPHUR_NAME ยังไงครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่