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 > การสร้างฟอร์ม drop down โดยดึงจากดาต้าเบส ถ้าต้องการให้มี drop down list เลือกข้อมูลจากดาต้าเบส



 

การสร้างฟอร์ม drop down โดยดึงจากดาต้าเบส ถ้าต้องการให้มี drop down list เลือกข้อมูลจากดาต้าเบส

 



Topic : 045979



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



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




ถ้าต้องการให้มี drop down list เลือกข้อมูลจากดาต้าเบส เช่น

a_ID:

  • x

  • y



b:

  • database of x

  • database of y



เมื่อเลือก a ถ้าเป็น x ข้อมูลที่โชว์ใน drop down b จะเป็นของ x
คล้ายกับเราใช้คำสั่ง sql เลือก

select * from tblName where a_ID=x
ถเาเป็นของ y ก็จะได้
select * from tblName where a_ID=y

ปัญหาคือเมื่อลองเลือก a_ID ค่าใน b ไม่เปลี่ยนตามคะ ไม่ทราบว่ามันจะจ้องเขียนยังไง
ให้ค่ามันเปลี่ยนตามโดยที่เราไม่ต้องทำการกดปุ่มก่อนทุกครั้ง



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-07-25 14:40:32 By : S-t-A-r View : 5877 Reply : 8
 

 

No. 1



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



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


คุณต้องศึกษาการใช้งาน PHP ร่วมกับ AJAX ครับ ถ้าคุณไม่มีพื้นฐานเลย ก็ไม่สามารถเอาโค๊ตมาลงตรงนี้ให้ได้น่ะครับ เพราะมันกว้างมากๆ แต่เวลาใช้จริง ง่ายนิดเดียว และก็มีหลายเพจเลยล่ะครับ

สรุปขอแนะนำว่าไปศึกษา AJAX นะครับ แล้วถ้าไม่เข้าใจอะไร มาถามแบบเจาะจงดีกว่าครับ






Date : 2010-07-25 21:04:44 By : awachai007
 


 

No. 2



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



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


ขอบคุณสำหรับคำแนะนำคะ
Date : 2010-07-26 12:46:46 By : S-t-A-r
 

 

No. 3



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



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


รบกวนช่วยดูหน่อยคะ
ใช่แบบนี้หรือเปล่าคะ

Code (PHP)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
	
<script type="text/javascript" src="XMLHttpPostControl.js"></script> 
<table width = "80%" border="0" align="center">
	<form id="form1" method="post" action="aaa.php" >
	<tr>
		<SELECT NAME="datapost" onclick="startRequest(); return false">			 	   
            <OPTION VALUE="x">x</option>
            <OPTION VALUE="y">y</option>
            </SELECT>
      </tr>     
</form>
		<div id="divPostInfo"></div> 



aaa.php

<?php 	header( "Content-Type: text/plain; charset=utf-8" ) ;
echo $_POST["datapost"] ;	 ?>


XMLHttpPostControl.js

Code
var xmlHttp;

function createXMLHttpRequest( ) {
if ( window.ActiveXObject ) {
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" ) ;
} else if ( window.XMLHttpRequest ) {
xmlHttp = new XMLHttpRequest( ) ;
}
}

function startRequest( ) {
createXMLHttpRequest( ) ;
var pForm = document.getElementById( "form1" ) ;
var pBody = getRequestBody( pForm ) ;
xmlHttp.open( "post", pForm.action, true ) ;
xmlHttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ) ;
xmlHttp.onreadystatechange = function( ) {
if ( xmlHttp.readyState == 4 ) {
if ( xmlHttp.status == 200 ) {
saveResult( xmlHttp.responseText ) ;
} else {
saveResult( "พบข้อผิดพลาด " + xmlHttp.statusText ) ;
}
}
} ;
xmlHttp.send( pBody ) ;
}

function getRequestBody( pForm ) {
var nParams = new Array( ) ;
for ( var i=0 ; i < pForm.elements.length; i++ ) {
var pParam = encodeURIComponent( pForm.elements[i].name ) ;
pParam += "=" ;
pParam += encodeURIComponent( pForm.elements[i].value ) ;
nParams.push( pParam ) ;
}
return nParams.join( "&" ) ;
}

function saveResult( pMessage ) {
var divStatus = document.getElementById( "divPostInfo" ) ;
divStatus.innerHTML = "Server ได้รับข้อความว่า " + pMessage ;
}



ตัว dropdown ของ b ยัง error อยู่คะยังเขียนติดต่อดาต้าเบสผิดอยู่
Date : 2010-07-26 21:46:34 By : S-t-A-r
 


 

No. 4



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

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

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


ดูตัวอย่าง ด้านล่างนะครับ

ผมดึงข้อมูลชุมนุม มาจาก database ครับ โดยใน ข้อมูลใน database เนี่ย ผมได้เพิ่ม field reference ไว้ด้วย ชื่อ c_year ไว้เก็บปีการศึกษา

ดูตัวอย่างเลยดีกว่าเน๊าะ

ext1
รูปนี้คือตอนเลือกปีการศึกษา 2552 ก็จะแสดง เฉพาะข้อมูลปีการศึกษา 2552 ขึ้นมา

ex2
เช่นเดียวกันหากเลือก ปี 2553 ก็จะแสดงเฉพาะข้อมูลปี 2553

โค้ด มีดังนี้นะครับ
แบ่งเป็น 2 ส่วน

1. Code เลือกปีการศึกษา
<select name="f_year" class="text ui-widget-content ui-corner-all" id="f_year" onChange="ListClub(this.value)"> // หากมีการเปลี่ยน list ก็จะไปดึง javascript ชื่อ ListClub() มา
<option value="none">เลือก</option>
<?php
// อันนี้ โค้ดแสดง ปีการศึกษาครับ
$yb=date("Y")+543;
for($ynb=2552;$ynb<=$yb;$ynb++){
($f_year==$ynb) ? $selectnb = ' selected="selected"' : $selectnb ='' ;
?>
<option value="<?=$ynb;?>" <?=$selectnb;?>><?=$ynb;?></option>
<?php
}
?>
</select>



Code แสดงรายการที่เลือกใน option ที่ 1
<select name="f_club" class="text ui-widget-content ui-corner-all" id="f_club" style="width:120px">
				  <script type="text/javascript">
	function ListClub(SelectValue)
	{
		document.SearchResult.f_club.length = 0
		var myOption = new Option('','');
		document.SearchResult.f_club.options[document.SearchResult.f_club.length]= myOption;
		
		<?
			$intRows = 0;
			$strSQLbus = "SELECT * FROM t_club ORDER BY c_name,c_year ASC ";
			$objQuery = mysql_query($strSQLbus) or die ("Error Query [".$strSQLbus."]");
			$intRows = 0;
			while($objResult = mysql_fetch_array($objQuery))
			{
				$intRows++;
		?>			
				x = <?=$intRows;?>;
				mySubList = new Array();			
				strGroup = <?=$objResult["c_year"];?>;
				strValue ="<?=$objResult["c_id"];?>";
				strItem = "<?=$objResult["c_name"];?> (<?=$objResult["c_year"];?>)";
				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]);  
						document.SearchResult.f_club.options[document.SearchResult.f_club.length]= myOption;					
				}
			<?
			}
			?>																	
	}
</script>
                  </select>



พอจะมองออกบ้างมั้ยน่อ
ที่สำคัญ ชื่อ form ต้องให้ตรงกับ form ของคุณด้วยนะเอออ อย่างของผม ชื่อ SearchResult นะครับ ^-^
Date : 2010-07-27 00:39:46 By : yomaster
 


 

No. 5



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



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


ขอบคุณมากเลยคะคุณ yoyo
แต่ไม่ทราบว่า
Code (PHP)
($f_year==$ynb) ? $selectnb = ' selected="selected"' : $selectnb ='' ;




หมายถึงอะไรคะ งงๆ
^_^
Date : 2010-07-27 15:16:09 By : S-t-A-r
 


 

No. 6



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

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

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

($f_year==$ynb) ? $selectnb = ' selected="selected"' : $selectnb ='' ;


มันก็คือ ตัวนี้ครับ

Code (PHP)
if($f_year==$ynb) 
    $selectnb = ' selected="selected"';
else
    $selectnb ='' ;


ผมแนะนำเพิ่มเติม ควรเขียนแบบนี้ดีกว่านะครับ
$selectnb = ($f_year==$ynb) ? ' selected="selected"' : '' ;


ตอนแรกๆ ผมก็เขียนเหมือนคุณ YoYo แหละครับ แต่มันมีวิธีที่สั้นกว่าก็เลยเปลี่ยนมาเขียนแบบหลังแล้วครับ
Date : 2010-07-27 17:12:10 By : DownsTream
 


 

No. 7



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



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


จำเป็นต้องใช้ $selectnb ไหมคะ เพราะลองแล้วมันไม่ขึ้น drop down ตัวถัดไป
Code (PHP)
<?
    function DBconnect(){
    $db = "Database";  
    $conn = odbc_connect($db,"","") or die("Error Connect to Database");
    ECHO "SUCCESS";
    return $conn;
}
?>
<form>
<select name="f_year" class="text ui-widget-content ui-corner-all" id="f_year" onChange="ListClub(this.value)">
<option value="none">เลือก</option>
<OPTION VALUE=1>x</option>
 <OPTION VALUE=2>y</option>
</select>

<select name="f_club" class="text ui-widget-content ui-corner-all" id="f_club" style="width:120px">
				  <script type="text/javascript">	
    function ListClub(SelectValue)
	{
		document.SearchResult.f_club.length = 0
		var myOption = new Option('','');
		document.SearchResult.f_club.options[document.SearchResult.f_club.length]= myOption;	
		<?
			$conn = DBconnect();	
			$intRows = 0;
			$strSQLbus = "SELECT * FROM Match_TM ORDER BY Channel ASC ";
			$objQuery = odbc_exec($conn,$strSQLbus) or die ("Error Execute [".$strSQLbus."]");
			$intRows = 0;
			while(odbc_fetch_row($objQuery))
			{
				$intRows++;
		?>			
				x = <?=$intRows;?>;
				mySubList = new Array();			
				strGroup = <?=odbc_result($objQuery,"B_ID");?>;
				strValue ="<?=odbc_result($objQuery,"Channel");?>";
				strItem = "<?=odbc_result($objQuery,"RD");?>";
				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]);  
						document.SearchResult.f_club.options[document.SearchResult.f_club.length]= myOption;					
				}
			<?
			}
			?>																	
	}
</script>
                </select>
                </form>

Date : 2010-07-27 22:21:34 By : S-t-A-r
 


 

No. 8



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

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

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


ไม่จำเป็นครับผม

แต่ถึงคุณจะใส่ ไม่ใส่ ก็ไม่ได้เกี่ยวกับตัว dropdown ตัวต่อไปเลยนะครับ

อาจจะเป็นที่คุณกำหนดเงื่อนไขผิดนะครับ หรือไม่ก็ชื่อ form ชื่อ dropdown ไม่ตรงนะครับ

เอางี้ ตรง <form>

คุณลอง เปลี่ยนเป็น <form name="ชื่อฟอร์มของคุณ">
และตรงบรรทัดเหล่านี้

บรรทัดที่ 16
<select name="f_club" class="text ui-widget-content ui-corner-all" id="f_club" style="width:120px">
ตรง name="f_club" ก็เปลี่ยนให้เป็นชื่อตัว dropdown ตัวที่ 2 ของคุณ (หรืออาจจะใช้ชื่อนี้เลยก็ได้)

บรรทัดที่ 20,22
document.SearchResult.f_club.length = 0
document.SearchResult.f_club.options[document.SearchResult.f_club.length]= myOption;
เปลี่ยนเป็น
document.ชื่อฟอร์ม.ชื่อ dropdown ตัวที่ 2.length = 0
document.ชื่อฟอร์ม.ชื่อ dropdown ตัวที่ 2.options[document.ชื่อฟอร์ม.ชื่อ dropdown ตัวที่ 2.length]= myOption;

บรรทัดที่ 45
document.ชื่อฟอร์ม.ชื่อ dropdown ตัวที่ 2.options[document.ชื่อฟอร์ม.ชื่อ dropdown ตัวที่ 2.length]= myOption;



ลองดูครับผม ^-^


ประวัติการแก้ไข
2010-07-28 10:05:00
Date : 2010-07-28 10:02:00 By : yomaster
 

   

ค้นหาข้อมูล


   
 

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