 |
Dependent ListMenu // จะ save ข้อมูลเป็น GEO_NAME, PROVINCE_NAME, AMPHUR_NAME ยังไงครับ |
|
 |
|
|
 |
 |
|
ผมลองทำดูแล้วแต่ผมต้องการ 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 : - - - -
|
|
 |
 |
 |
 |
Date :
2009-09-02 16:43:32 |
By :
rwisarut |
View :
1984 |
Reply :
15 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ... แต่ผมต้องการเก็บค่าในฐานข้อมูลเป็น ชื่อ จังหวัด อำเภอ ที่เราเลือก เพราะถ้ามันเก็บข้อมูลเป็นตัวเลขแล้ว เมื่อผม export ข้อมูลจะเป็นตัวเลขครับ ....
|
 |
 |
 |
 |
Date :
2009-09-03 08:13:32 |
By :
rwisarut |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากทราบวิธีเหมือนกันอ่ะครับ เวลาผม save ก็จะเป็น ID เหมือนกัน อยากให้เป็น ชื่อจังหวัด,อำเภอ ที่เราเลือกอ่ะครับ ท่านผู้รู้รบกวนช่วยหน่อยนะครับ จนปัญญาจริงๆอ่ะ
|
 |
 |
 |
 |
Date :
2010-07-14 09:38:35 |
By :
chulaleklek |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

อยากทราบวิธีเหมือนกันอ่ะครับ เวลาผม save ก็จะเป็น ID เหมือนกัน อยากให้เป็น ชื่อจังหวัด,อำเภอ ที่เราเลือกอ่ะครับ ท่านผู้รู้รบกวนช่วยหน่อยนะครับ จนปัญญาจริงๆอ่ะ
ผมจะต้องแก้โค๊ดตรงที่วงไว้ เป็นอะไรหรอครับ
|
 |
 |
 |
 |
Date :
2010-07-14 09:41:40 |
By :
chulaleklek |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คำถามอันนี้ ก็แนวๆเดียวกันกับคำถามของหนูเลยหล่ะ แต่ก็ยังไม่มีใครมาช่วยอ่ะะะะะ หนูตาลายมาเป็นอาทิตย์แล้วค่ะ หาข้อมูลจากเว็ปนี้มา สิบกว่าเพจแล้ว ก็ยังไม่เจอคำตอบจริงๆ
|
 |
 |
 |
 |
Date :
2010-07-15 15:22:11 |
By :
keewa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก็บเป็น id น่ะถูกแล้วค่ะ
ถ้าคุณ export ไปคุณก้อ join query แล้ว output ออกเป็นชื่อ ตำบล อำเภอ จังหวัดไปดิคะ
จะ export ไปดิบๆทำไมเพราะชื่ออำเภอซ้ำกันหลายชื่อ ยิ่งตำบลนี่ซ้ำกันมหาศาล
จุดประสงค์ของ id คือระบุตำแหน่งของข้อมูลให้แน่นอน
พี่หนุ่มออกแบบมีวัตถุประสงค์ค่ะ ไม่ใช่เอาง่ายๆ เพื่อความสะดวกอย่างเดียว
แต่หากอยากจะให้มันเป็น ชื่อแทนที่จะเป็น id จะทำให้ก้อได้ค่ะ แต่ปัญหาหลังจากนี้
พวกคุณๆ ก็ไปแก้กันเองนะคะ
จากะซิบอีกอย่างฐานข้อมูลของพี่หนุ่มอะโบราณนิดๆค่ะ
เข้าใจว่ามาจากกรมการปกครองแต่นั่นก้อนานมาละ แค่แขวงดินแดงยังไม่มีเลย
อำเภอ จังหวัดเกิดใหม่ก้อยังไม่ update
(หรือ update แล้วน้อ ให้ทายว่ายัง เพราะน่าจะยุ่งๆกะการช่วยคุณพี่แม่ชีเลือกชุดเด็กอยู่ค่ะ)
|
 |
 |
 |
 |
Date :
2010-07-16 07:48:12 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

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

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