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,037

HOME > PHP > PHP Forum > list menuครับช่วยหน่อยครับ คือเช่นถ้ามีlist menu อยู่สามอันครับอันที่หนึ่งดึงค่าจากเบสมาแสดงพอเลือก



 

list menuครับช่วยหน่อยครับ คือเช่นถ้ามีlist menu อยู่สามอันครับอันที่หนึ่งดึงค่าจากเบสมาแสดงพอเลือก

 



Topic : 012128

Guest




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


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 1 ก.พ. 2550 22:58:15 By : แอบรัก View : 2489 Reply : 3
 

 

No. 1



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



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

ขั้นตอนการทำงาน

จากนั้นก็จะทำการดึงข้อมูลขึ้นมาแสดงใน List Box ทั้งสอง List Box ซึ่งเมื่อเลือกค่า List Box อันแรกแล้ว ค่าใน List Box อันที่สอง ก็จะเปลี่ยนตามอัตโนมัติ โดยไม่ต้อง Refresh หน้าจอ ยกตัวอย่าง ในส่วนของ Main Category ทำการเลือก ?เสื้อบุรุษ? ใน Sub Category ก็จะแสดงข้อมูลของหมวดย่อยที่อยู่ภายใต้ ?เสื้อบุรุษ? เช่น ?เสื้อฮาวาย? ?เสื้อโปโล? ?เสื้อทีเชิ้ต? และ ?เสื้อเชิ้ต? เป็นต้น

ในส่วนนี้เราต้องอาศัย JavaScript เข้ามาช่วย หลักการง่ายๆก็คือ ดึงค่าจาก Database ออกมาก่อน แล้วไปเก็บไว้ใน Array ของ JavaScript จากนั้นก็ใช้ Code ของ JavaScript ดึงออกมา ลองดูจาก Code ตัวอย่างได้เลยครับ (โดย Code ตัวอย่างจะใช้ MySQL เป็น Database ครับ และสมมุติให้ตารางที่เก็บข้อมูลชื่อ StoreMaincatTable และ StoreSubcatTable โดยมีความสัมพันธ์กันตามรูปข้างบนครับ)

Code ตัวอย่าง

//////////////////////////////// ตัวอย่าง Code ////////////////////////////////
<?php
$host = "localhost";
$user = "username"; //Username ที่ใช้ในการติดต่อ MySQL
$password = "password"; //Password ที่ใช้ในการติดต่อ MySQL
$conn = mysql_connect($host, $user, $password);

$db = "yourDB"; //ชื่อของ Database

$Sel = "SELECT * FROM StoreMaincatTable ORDER BY S_Maincat_Name ASC ";
$ExecSelMain = mysql_query($db, $Sel);
?>

<script language="JavaScript">
<?
while($RowMain = mysql_fetch_array($ExecSelMain)){
$count = 0;
$maincat = $RowMain[0];
?>
var Array<?echo $maincat;?> = new Array("('Sub Categories','',true,true)"
<?
$SelSub = "SELECT * FROM StoreSubcatTable WHERE S_MaincatID='$RowMain[0]' ";

$ExecSelSub = mysql_query($db, $SelSub);

$nrow = mysql_num_rows($ExecSelSub);
if($nrow > 0){
while($RowSub = mysql_fetch_array($ExecSelSub)){
$i = 1;
$nf = mysql_num_fields($ExecSelSub );
?>
<? if($count == $nrow-1){ ?>
,"('<? echo $RowSub[$i]; ?>')");
<?}else{?>
,"('<? echo $RowSub[$i]; ?>')"
<? } // End Else
$count++;
} // End of While StoreSubcatTable
}else{
?>
);
<?php
}
} // End of While StoreMaincatTable
?>

function LoadProductType(form1,selected) {
var selectedArray = eval("Array"+selected);
while (selectedArray.length < form1.subcat1.options.length) {
form1.subcat1.options[(form1.subcat1.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("form1.subcat1.options=" + "new Option" + selectedArray);
}
if (form1.maincat.options[0].value == '') {
form1.maincat.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
}
else {
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0);
}
}
}
}
}

</script>

<form name="FormSearchCat" method="post">
<table width="400" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr><td colspan="2">Search</td></tr>
<tr><td>หมวดหลัก</td>
<td>

<?php
$SelMainS = "SELECT * FROM StoreMaincatTable ORDER BY S_Maincat_Name ASC ";
$ExecSelMainS = mysql_query($db, $SelMainS);
?>

<select name='maincat' onChange = "LoadProductType(document.FormSearchCat,document.FormSearchCat.maincat.options
[document.FormSearchCat.maincat.selectedIndex].value)">

<option value="" selected>Main Categories</option>

<?php while($RowMainS = mysql_fetch_row($ExecSelMainS)){
$maincatC = $RowMainS[0];
?>

<option value="<?php echo $maincatC;?>"><?echo stripslashes($RowMainS[1]);?> </option>

<?}?>

</select>

</td>
</tr>
<tr><td>หมวดย่อย</td>
<td>

<select name='subcat1'>
<option value=""><font face="MS Sans Serif" size="1">None</font></option>
</select>

</td>
</tr>
<tr><td colspan="2"><div align="right"><input type="submit" name="Submit" value="Submit"></div></td></tr>
</table>
</form>
//////////////////////////////// สิ้นสุด ตัวอย่าง Code ////////////////////////////////

รายละเอียดโดยสังเขปของแต่ละส่วนมีดังนี้

$Sel = "SELECT * FROM StoreMaincatTable ORDER BY S_Maincat_Name ASC ";
$ExecSelMain = mysql_query($db, $Sel);

อธิบาย: ทำการดึงข้อมูลในส่วนของหมวดหลักขึ้นมา


--------------------------------------------------------------------------------

<script language="JavaScript">
<?
while($RowMain = mysql_fetch_array($ExecSelMain)){
$count = 0;
$maincat = $RowMain[0];
?>
var Array<?echo $maincat;?> = new Array("('Sub Categories','',true,true)"
<?
$SelSub = "SELECT * FROM StoreSubcatTable WHERE S_MaincatID='$RowMain[0]' ";
$ExecSelSub = mysql_query($db, $SelSub);

$nrow = mysql_num_rows($ExecSelSub);
if($nrow > 0){
while($RowSub = mysql_fetch_array($ExecSelSub)){
$i = 1;
$nf = mysql_num_fields($ExecSelSub );
?>
<? if($count == $nrow-1){ ?>
,"('<? echo $RowSub[$i]; ?>')");
<?}else{?>
,"('<? echo $RowSub[$i]; ?>')"
<? } // End Else
$count++;
} // End of While StoreSubcatTable
}else{
?>
);
<?php
}
} // End of While StoreMaincatTable
?>

อธิบาย: เป็นการเขียน Code PHP ฝังอยู่ใน JavaScript โดยทำการดึงข้อมูลจากหมวดหลักและหมวดย่อยมาจัดอยู่ในรูปแบบ Array ของ JavaScript ถ้าใครดู Code ส่วนนี้แล้วงง แนะนำให้ View Source ดู Code JavaScript อย่างเดียว ในส่วนของ Output ครับ (หน้า Web Page ที่เป็น Output ของเราเมื่อ Click View Source จะเห็นเป็นแค่ Code HTML กับ JavaScript ครับ ซึ่งจะไม่มี Code PHP มาปนก็อาจจะทำให้เข้าใจได้ง่ายขึ้นครับ)


--------------------------------------------------------------------------------

<form name="FormSearchCat" method="post">
<table width="400" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000">
<tr><td colspan="2">Search</td></tr>
<tr><td>หมวดหลัก</td>
<td>
<?php
$SelMainS = "SELECT * FROM StoreMaincatTable ORDER BY S_Maincat_Name ASC ";
$ExecSelMainS = mysql_query($db, $SelMainS);
?>

<select name='maincat' onChange = "LoadProductType(document.FormSearchCat,document.FormSearchCat.maincat.options
[document.FormSearchCat.maincat.selectedIndex].value)">
<option value="" selected>Main Categories</option>

<?php while($RowMainS = mysql_fetch_row($ExecSelMainS)){
$maincatC = $RowMainS[0];
?>
<option value="<?php echo $maincatC;?>"><?echo stripslashes($RowMainS[1]);?> </option>
<?}?>

</select>

</td>
</tr>
<tr><td>หมวดย่อย</td>
<td>

<select name='subcat1'>
<option value=""><font face="MS Sans Serif" size="1">None</font></option>
</select>

</td>
</tr>
<tr><td colspan="2"><div align="right"><input type="submit" name="Submit" value="Submit"></div></td></tr>
</table>
</form>

อธิบาย: อันนี้เป็นส่วนของ Output ที่อยู่ใน Form ครับ โดย PHP จะทำการดึงเอาหมวดหลักออกมาไว้ใน List Box อันแรก เมื่อเราเลือก Web Page หน้านี้ดูก็จะเห็นว่าเป็น Code JavaScript ที่อาศัย onChange เป็นตัวจับ Event ที่เกิดขึ้น โดยเมื่อเลือกหมวดหลักแล้ว List Box อันที่สอง ที่เป็นหมวดย่อย ก็จะเปลี่ยนตามค่า Array ของ JavaScript ที่กำหนดไว้นั่นเอง







Date : 1 ก.พ. 2550 23:35:11 By : arsachi
 


 

No. 2

Guest


อยากได้ตัวฐานข้อมูลจริงขอหน่อยได้เปล่าครับ

Date : 7 ก.พ. 2550 15:20:05 By : b
 

 

No. 3

Guest


''งง อธิบาย sql ด้วยสิ
Date : 21 มี.ค. 2551 13:30:09 By : ดดดดดดดดดดดดดดดด
 

   

ค้นหาข้อมูล


   
 

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