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 > ขอความช่วยเหลือเรื่อง ระบบ 2 เมนู ผันตามกันหน่อยครับ



 

ขอความช่วยเหลือเรื่อง ระบบ 2 เมนู ผันตามกันหน่อยครับ

 



Topic : 018263

Guest




ผมต้องการทำเมนู 2 เมนู คือ เมนูจังหวัด (หลัก) และเมนูอำเภอ (ย่อย) โดยที่เมื่อคลิกเลือกจังหวัดในเมเมนูหลัก ให้แสดงรายการอำเภอของจังหวัดที่เลือก โค้ดของผมแบบนี้ครับ (ปัญหาตอนนี้คือเมื่อเลือกจังหวัดแล้วรายชื่ออำเภอของจังหวัดไม่แสดงครับ)
//ส่วนที่เป็น Java ที่อยากให้ช่วยอธิบายโค้ดให้หน่อย
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function validate() {
if(document.check_person.province.value=='') {
alert('Please select cat2 \nกรุณาเลือกหมวดย่อยด้วยจ้า...พ่อคุณ');
document.check_person.province.focus();
return false;
}
else {
return true;
}
}

//-->
</script>

//ข้างล่างนี้คือส่วนที่เป็นเมนูหลักและเมนูรองครับ
<form action="add_person.php" method="post" enctype="multipart/form-data" name="check_person" id="check_person" onSubmit='return validate();' >
<table width="80%" border="1" align="center">
<tr>
<th scope="row"><div align="left">ภูมิลำเนา</div></th>
<td><input name="txt_domicile" type="text" id="txt_domicile" size="100" maxlength="100" /></td>
</tr>
<tr>
<th scope="row"><div align="left">ที่อยู่ปัจจุบัน</div></th>
<td>จังหวัด
<?php
include("host.inc.php");//ติดต่อ Server ครับ
//เมนูหลัก (จังหวัด)
$select_province' = $_REQUEST[select_province' ];

//คำสั่งเตรียมข้อมูลที่จะแดสงส่วนแรกของเมนู $sql = "SELECT * FROM province WHERE pro_id = '$select_province' ";
$res = mysql_query( $sql , $link );
if (mysql_fetch_array($res) ) {
$current = mysql_result($res, 0, 'pro_name');
}
else {
$current = "-กรุณาเลือก-";
}
//คำสั่ง sql เพื่อดึงรายชื่อจังหวัดมาแสดงในเมนูจังหวัด
$sql = "SELECT * FROM province ORDER BY pro_id ";
$res=mysql_query($sql , $link);
?>

<select name='select_province' onChange="MM_jumpMenu('parent',this,0)">
<?php
echo "<option value=$select_province>$current</option> \n" ;
echo "<option value=\"$PHP_SELF?pro_id=$pro_id\">-------</option> \n" ;
While( $row = mysql_fetch_array($res) ) {
$pro_id = $row['pro_id'];
$pro_name = $row['pro_name'];
echo "<option value=\"$PHP_SELF?pro_id=$row[pro_id]\">$pro_name</option> \n" ;
}
echo "</Select>";
?>
อำเภอ<select name='select_umpher' onChange="MM_jumpMenu('parent',this,0)">
<?php
$sql = "SELECT * FROM umpher WHERE pro_id = '$select_province' ORDER BY pro_id ";
$res = mysql_query( $sql, $link);
echo "<option value=$select_province>$current</option> \n" ;
echo "<option value=\"$PHP_SELF?pro_id=$pro_id\">-------</option> \n" ;
while( $row = mysql_fetch_array($res) ) {
$ump_id= $row[ump_id];
$ump_name= $row[ump_name];
$pro_id=$row[pro_id];
echo "<option value=\"$PHP_SELF?pro_id=$row[ump_id]\">$ump_name</option> \n" ;
}
echo "</select>";
?>




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 10 ก.พ. 2551 01:05:09 By : เต่า.php View : 1872 Reply : 3
 

 

No. 1

Guest


เท่าที่ดูผมว่ามันเพี้ยนๆ นิดๆ คือ concept คือเลือกจังหวัดและมีอำเภอในจังหวัดในเลือกใน dropdown menu
อันที่ 2 ป่ะครับ หรือเลือกอำเภอแล้วต้องมีตำบลต่อ เพราะถ้าเป็นแค่หยุดที่อำเภอ code นจ่าจะเป็น

อำเภอ<select name='select_umpher' >
<?php
$sql = "SELECT * FROM umpher WHERE pro_id = '$select_province' ORDER BY pro_id ";
ผมเดาว่าคุณมี 2 table อันแรกน่าจะเป็นจังหวัด ประกอบด้วย pro_id, pro_name อีกตารางคือ อำเภอ ประกอบ
ด้วย ump_id, ump_name, pro_id

ถ้าตามที่ผมพูด คุณน่าจะเปลี่ยนเป็น
$sql = "SELECT * FROM umpher WHERE pro_id = '$select_province' ORDER BY ump_id ";

$res = mysql_query( $sql, $link);

ส่วนตรงนี้ก็
if (mysql_num_rows($res) != 0) {
while( $row = mysql_fetch_array($res) ) {
$ump_id= $row[ump_id];
$ump_name= $row[ump_name];
$pro_id=$row[pro_id];
echo "<option value="$ump_id">$ump_name</option> \n" ;
}
}else{
echo "<option value='0'>กรุณาเลือกจังหวัดก่อน</option> \n" ;
}
echo "</select>";
?>
แล้วค่อย มีปุ่ม submit เอาก็ได้ครับ แต่ถ้าเป็นกรณี เลือกจังหวัดแล้วเลือกอำเภอ ตามด้วยตำบล ช่วยบอกมาอีกทีนะครับ






Date : 10 ก.พ. 2551 22:02:59 By : สมมติ
 


 

No. 2

Guest


ขอเสริม concept หลักๆ จริงๆ ก็คือ ใน dropdown ที่ 2 สามารถ query ได้ข้อมูลไหม ถ้าเปิด page ครั้งแรก แน่นอนว่า
$select_province จะไม่มีค่า ดังนั้น query จะไม่ได้ข้อมูล เราก็บังคับให้เลือกได้เฉพาะว่า ให้เลือกจังหวัดก่อน
แต่ถ้าเลือกจังหวัดแล้ว ก็ให้ query และเรียงตาม ump_id ก็ได้ครับ
ไม่ว่าจะแปรผันมาแค่ไหน ก็คือถ้าอยากให้ 3 แปรผันก็เอา
"<option value="$PHP_SELF?pro_id=$row[pro_id]">$pro_name</option> \n" ;
สำหรับอันแรก
"<option value="$PHP_SELF?pro_id=$row[pro_id]&ump_id=$row[ump_id]">$ump_name</option> \n" ;

Date : 10 ก.พ. 2551 22:12:12 By : สมมติ
 

 

No. 3

Guest


ขอบคุณ คุณสมมติ มากครับสำหรับคำแนะนำ ผมต้องขอโทษด้วยที่ไม่ได้ให้รายละเอียดครบ

คืองี้คับ ที่จริงผมต้องการทำ4 เมนู (จังหวัด,อำเภอ, ตำบล, หมู่บ้าน) ผันตามกันดังนี้
1. เมื่อเลือกจังหวัด ให้แสดงรายการอำเภอของแต่ละจังหวัด และเมื่อเลือกอำเภอก็ให้แสดงรายการตำบล เมนูสุดท้ายคือเลือกตำบลแล้วให้แสดงรายการหมู่บ้าน
2. ซึ่งตอนนี้ผมสามารถเขียนให้สามารถเลือกเมนูได้ทั้ง 4 เมนูแล้ว ตามโค้ดที่ส่งมาให้ดูข้างล่างนี้ แต่ปัญหามีอยู่ว่าเมือเลือกรายการหลักและส่งค่าไปยังรายการรองลงไปแล้ว ตัวเลือกจากรายการหลักจะหายไป เช่น เมื่อเลือกจังหวัด พอแเมนูรองแสดงรายการอำเภอ แล้ว ค่าที่เมนูจังหวัดจะกลับมาเลือกที่ -กรุณาเลือก- (เป็นทุกเมนู) จึงทำให้ตอน submit ไม่ผ่านเนื่องจาก สคริปต์ของ JAVA จะเช็คว่ายังไม่มีการเลือกเมนูหลัก ซึ่งปัญหานี้ผมแก้ไม่ตกจริง ๆ ( ติดมา 3 คืน+พาราเซตามอล 6 เม็ด) ผมเข้าใจว่าน่าจะเกิดมาจากสคริปต์ของ JAVA ที่ส่งค่าแล้วเรียกใหม่ (refresh) ทุกครั้งที่เลือก
3. ยังไงก็อยากรบกวนช่วยดูโค้ดให้หน่อยนะคับ เผื่อว่าจะเป็นประโยชน์ต่อผู้อื่นบ้างที่เจอปัญหาเช่นเดียวกับผม
4. รายะเอียดแต่ละตาราง
4.1 province [pro_id char(2) , pro_name char(30) ]
4.2 umpher [ump_id char(4) , ump_name char(30), pro_id char(2) ]
4.3 tambon [tam_id char(6) , tam_name char(30) , ump_id char(4) ]
4.4 village [vil_id char(8) , vil_name char(30) , tam_id char(6) ]
5. ส่วนนี้คือโค้ด ระบบ 4 เมนู ผันตามกันคับ



<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function validate() {
if(document.check_person.umpher.value=='') {
alert('Please select Umpher \nกรุณาเลือกหมวดย่อย');
document.check_person.umpher.focus();
return false;
}
else {
return true;
}
}

//-->
</script>

<center>
<!-- ส่วนของฟอร์มรับข้อมูล -->
<form action="add_person.php" method="post" enctype="multipart/form-data" name="check_person" id="check_person" >
<?php
echo "<center>";
echo "ฟอร์มบันทึกข้อมูล [บุคคล]";
echo "</center>";
echo "<br>";
?>
<table width="80%" border="1" align="center">
<tr>
<th scope="row"><div align="left">ที่อยู่ปัจจุบัน</div></th>
<td>
<?php
// เริ่มการทำระบบ 4 เมนู ผันตามกัน
require("host.inc.php");
$province = $_REQUEST['province'];
$umpher = $_REQUEST['umpher'];
$tambon = $_REQUEST['tambon'];
$village = $_REQUEST['village'];
$vil_id = $village;
$sql = "SELECT * from province Where pro_id='$province' ";
$result = mysql_query( $sql );
if (mysql_fetch_array($result) ) {
$current = mysql_result($result, 0, 'pro_name');
} else {
$current = "-กรุณาเลือก-";
}
$sql = "SELECT * from province Order by pro_id "; // cat_label
$result = mysql_query( $sql);
?>

จังหวัด <Select Name='province' onChange="MM_jumpMenu('parent',this,0)">

<?php
echo "<option value=$province>$current</option> \n" ;
echo "<option value=\"$PHP_SELF?province=$province\">---------------</option> \n" ;
While( $fetcharr = mysql_fetch_array($result) ) {
$pro_id = $fetcharr['pro_id'];
$pro_name = $fetcharr['pro_name'];
echo "<option value=\"$PHP_SELF?province=$pro_id\">$pro_name</option> \n" ;
}
echo "</Select>";
?>

อำเภอ <SELECT NAME='umpher' size=1 onChange="MM_jumpMenu('parent',this,0)">

<?php
$sql = "SELECT * from umpher Where pro_id='$province' ";
$result = mysql_query( $sql );
if (mysql_num_rows($result) == 0 ) {
echo "<option>กรุณาเลือก</option> \n" ;
} else {
echo "<option value=>-กรุณาเลือก-</option> \n" ;
}
While( $fetcharr = mysql_fetch_array($result) ) {
$ump_id = $fetcharr['ump_id'];
$ump_name = $fetcharr['ump_name'];
echo "<option value=\"$PHP_SELF?umpher=$ump_id\">$ump_name</option> \n" ;
}
echo "</Select>";
?>
ตำบล <SELECT NAME='tambon' size=1 onChange="MM_jumpMenu('parent',this,0)">

<?php
$sql = "SELECT * from tambon Where ump_id='$umpher' ";
$result = mysql_query( $sql );
if (mysql_num_rows($result) == 0 ) {
echo "<option>กรุณาเลือก</option> \n" ;
} else {
echo "<option value=>-กรุณาเลือก-</option> \n" ;
}
While( $fetcharr = mysql_fetch_array($result) ) {
$tam_id = $fetcharr['tam_id'];
$tam_name = $fetcharr['tam_name'];
echo "<option value=\"$PHP_SELF?tambon=$tam_id\">$tam_name</option> \n" ;
}
echo "</Select>";
?>
หมู่บ้าน <SELECT NAME='village' size=1 onChange="MM_jumpMenu('parent',this,0)">

<?php
$sql = "SELECT * from village Where tam_id='$tambon' ";
$result = mysql_query( $sql );
if (mysql_num_rows($result) == 0 ) {
echo "<option>กรุณาเลือก</option> \n" ;
} else {
echo "<option value=>-กรุณาเลือก-</option> \n" ;
}
While( $fetcharr = mysql_fetch_array($result) ) {
$vil_id = $fetcharr['vil_id'];
$vil_name = $fetcharr['vil_name'];
echo "<option value=\"$PHP_SELF?village=$vil_id\">$vil_name</option> \n" ;
}
echo "</Select>";
//จบการทำเมนูผันตามกัน 4 เมนู
?>

</td>
</tr>

<td colspan = 2 align=center><div align="left">
<input type="submit" name="Submit" value="Submit" id="Submit" />
<input type="reset" name="Reset" value="Reset" id="label" />
</div></td>
</tr>
</table>
</form>
หมายเหตุ : โค้ดอาจจะดูมั่วๆ สักนิด เพราะมือใหม่คับ แต่โค้ดนี้สามารถแสดงเมนูได้ถูกต้องตามข้อมูลที่เก็บอยู่ในตารางคับ งัยก็คงต้องรบกวนช่วยดูอีกครั้งนะครับ ขอบคุณล่วงหน้าครับผม
Date : 11 ก.พ. 2551 17:06:35 By : เต่า.php
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอความช่วยเหลือเรื่อง ระบบ 2 เมนู ผันตามกันหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่