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

HOME > PHP > PHP Forum > ช่วยดูให้หน่อยนะครับ เกี่ยวกับเรื่อง ของ radio ที่ส่งค่าโดย javacript



 

ช่วยดูให้หน่อยนะครับ เกี่ยวกับเรื่อง ของ radio ที่ส่งค่าโดย javacript

 



Topic : 044603



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



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




คือว่าผมได้เขียน check ว่าถ้า radio ไหนได้ถูก เลือก แล้วให้ส่ค่า ที่อยู่ใน radio นั้นไปแทน แต่ว่าผมไม่เข้าใจว่าของผมทำไมมันไม่ยอมเช็คค่าให้ พอเมื่อเราเลือกแล้ว แล้วพอกด save ไป ค่าที่เป็น radio ถูกส่งไปหมดทุกค่าเลยครับ

Code (PHP)
<script language="JavaScript">
	   var HttPRequest = false;

	   function doCallAjax(Mode) {
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		
			
	
		  var url = 'excel_ordersave.php';
		  var pmeters = "tRequest_name=" + encodeURI( document.getElementById("txtRequest_name").value) +
						"&tRequest_date=" + encodeURI( document.getElementById("txtRequest_date").value ) +
						"&tEquipment=" + encodeURI( document.getElementById("Equipment").value ) +
						"&tChemical=" + encodeURI( document.getElementById("Chemical").value ) +
						"&tEbzyme=" + encodeURI( document.getElementById("Ebzyme").value ) +
						"&tOther=" + encodeURI( document.getElementById("txtOther").value ) +
						"&tProject=" + encodeURI( document.getElementById("txtProject").value ) +
						"&tRequested_objective=" + encodeURI( document.getElementById("txtRequested_objective").value ) +
						"&tDescription=" + encodeURI( document.getElementById("txtDescription").value ) +
						"&tSupplier_name=" + encodeURI( document.getElementById("txtSupplier_name").value ) +
						"&tSize=" + encodeURI( document.getElementById("txtSize").value ) +
						"&tQuantity=" + encodeURI( document.getElementById("txtQuantity").value ) +
						"&tPrize=" + encodeURI( document.getElementById("txtPrize").value ) +
						"&tMode=" + Mode;
			  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		    	//เช็คค่า ว่าได้ทำการ เลือก redio หรือป่าว ถ้าไม่ได้เลือกให้แสดงข้อความแสดง
						var Equipment=document.getElementById('Equipment');
						var Chemical=document.getElementById('Chemical');
						var Ebzyme=document.getElementById('Ebzyme');
						
						if (Equipment.checked) {Order_Type = Equipment.value;} 
						else if (Chemical.checked) {
						Order_type = Chemical.value;
						} else if (Ebzyme.checked) {
						Order_type = Ebzyme.value;
						} else {
						alert ("กรุณาเลือก Order Type ! ")
						}
						
						alert (Order_type);
						req.onreadystatechange = function(){
						
						if(req.readyState == 4){
						if(req.status == 200){
						
						}
						}
						
						}			
												
				///*******************************************				
			
			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("mySpan").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {
				   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
				   document.getElementById("txtRequest_name").value = '';
				   document.getElementById("txtRequest_date").value = '';
				   document.getElementById("Equipment").value = '';
				   document.getElementById("Chemical").value = '';
				   document.getElementById("Ebzyme").value = '';
				   document.getElementById("txtOther").value = '';
				   document.getElementById("txtProject").value = '';
				   document.getElementById("txtRequested_objective").value = '';
				   document.getElementById("txtDescription").value = '';
				   document.getElementById("txtSupplier_name").value = '';
				   document.getElementById("txtSize").value = '';
				   document.getElementById("txtQuantity").value = '';
				   document.getElementById("txtPrize").value = '';
				  
				  }
				
			}
			
		


	   }
	</script>

ส่วนของ radio
Code (PHP)
<td><font color="#006600" size="2"><b>Request Name</b></font><font color="#006600" size="2"><b>(ผู้ขอซื้อ):</b></font></td>
                        <td><input type="text" name="Request_name"  value="<? echo $_POST['Request_Name']; ?>" id="txtRequest_name"/></td>
                        <td><font color="#006600" size="2"><b>Request Date:</b></font> </td>
                        <td><input type="text" name="Request_date"  value="<? echo $_POST['Request_date']; ?>" id="txtRequest_date"/></td>
                      </tr>
                      <tr>
                        <td><font color="#006600" size="2"><b>Order Type:</b></font></td>
                      </tr>
                      <tr>
                        <td><input type="radio" value="Equipment" name="Order_type" id="Equipment" />
                            <font color="#006600" size="2">Equipment (วัสดุอุปกรณ์)</font></td>
                        <td><input type="radio" value="Chemical" name="Order_type" id="Chemical" />
                            <font color="#006600" size="2">Chemical (สารเคมี)</font></td>
                        <td><input type="radio" value="Ebzyme" name="Order_type" id="Ebzyme" />
                            <font color="#006600" size="2">Enzyme (เอนไซม์)</font></td>
                        <td>
                            <font color="#006600" size="2"><input type="radio" name="Order_type" id="Other" onClick="ck_frm();" />Other (อื่นๆ)</font>
                      </td>
                      <td><div id="frm_txt" style="display:none;">
                            <input type="text" name="Other" size="30" id="txtOther"/>
                            </div></td>
                      
                      
                      </tr>




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-28 10:23:39 By : SOUL View : 1140 Reply : 8
 

 

No. 1



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



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

ข้อมูลที่ส่งไปเป็นอย่างไรครับที่คุณบอกว่ามันส่งไปทั้งหมดอ่ะครับ

ใช้ firebug หรือเปล่ามันจะมีเช็คค่าที่ส่งไปให้ลองเอามาให้ดูหน่อยครับ






Date : 2010-06-28 10:44:09 By : oxygenyoyo
 


 

No. 2



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



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


จาก code จะเห็นว่าผม มี radio อยู่ประมาณ 4 อันนะครับ ผมก็ได้ เขียน code เพื่อเช็คค่า radio ว่าอันไหนเช็คหรือไม่เช็ค แล้วถ้าค่าไหนถูกเช็ค ก็เลือก radio นั้นส่งไป แต่นี้ดันส่งไปทั้ง สี่ radio เลยครับ ผมเลยงงว่า ทำไม ถึงไม่ยอมส่งเฉพาะ ค่าที่ถูกเลือกเท่านั้นอะครับ ช่วยทีนะครับ
Date : 2010-06-28 11:30:09 By : SOUL
 

 

No. 3



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



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

ฟังก์ชั่น ck_frm() ไม่เห็นเอามาให้ดูเลยครับ

แล้วผมถามคุณว่าคุณรู้ได้อย่างไรว่าค่าที่ส่งไปเป็นอย่างไรรบกวนเอามาให้ดูหน่อย

คุณรู้จัก firebug หรือเปล่าถ้าไม่รู้จักลองไปหามาใช้ดูเป็น add-on ของ Firefox

แล้วจะเข้าใจสิ่งที่ผมถามคุณนะ
Date : 2010-06-28 11:49:39 By : oxygenyoyo
 


 

No. 4



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



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


อ้อผมเข้าใจครับ ผมใช้ครับ fribug อะ
อันนี้เป็น
ผมไม่แน่ใจนะครับว่าผมเขียนถูกหรือป่าวครับ ช่วยดูให้หน่อยนะครับ รบกวนด้วยครับ

Code (PHP)
	//เช็คค่า ว่าได้ทำการ เลือก redio หรือป่าว ถ้าไม่ได้เลือกให้แสดงข้อความแสดง
						var Equipment=document.getElementById('Equipment');
						var Chemical=document.getElementById('Chemical');
						var Ebzyme=document.getElementById('Ebzyme');
						
						if (Equipment.checked) {Order_Type = Equipment.value;} 
						else if (Chemical.checked) {
						Order_type = Chemical.value;
						} else if (Ebzyme.checked) {
						Order_type = Ebzyme.value;
						} else {
						alert ("กรุณาเลือก Order Type ! ")
						}
						
						alert (Order_type);
						req.onreadystatechange = function(){
						
						if(req.readyState == 4){
						if(req.status == 200){
						
						}
						}
						
						}			
												
				///*******************************************	

Date : 2010-06-28 13:06:47 By : SOUL
 


 

No. 5

Guest


1. ใช้ firebug เช็คค่า post ที่มันส่งไปครับว่า มีอะไรบ้าง ดูที่ post ที่มันส่งออกไป ครับ หรือจะลอง ให้มัน response คืนมาก็ได้ครับว่าได้อะไรครับ เช่น print_r($_POST)

//เช็คค่า ว่าได้ทำการ เลือก redio หรือป่าว ถ้าไม่ได้เลือกให้แสดงข้อความแสดง

ในเมื่อ เงือนไขของคุณบอกแล้ว ต้องเช็ค 1 อัน ไม่เช็คไม่ได้

ใส่ checked="checked" ที่ตัวแรกสิ

<input type="radio" checked="checked" value="Equipment" name="Order_type" id="Equipment" />

เช็คตัวแรก เป็น Default ไปเลย ถ้าไม่เลือกก็ได้ค่าแรกไป จะได้ตัดปัญหา ว่าเขาจะเช็คหรือไม่เช็ค ถ้า user ไม่เช็ค ฉันจะเอา Default นะ ก็ว่ากันไป

จาก code จะเห็นว่าผม มี radio อยู่ประมาณ 4 อันนะครับ ผมก็ได้ เขียน code เพื่อเช็คค่า radio ว่าอันไหนเช็คหรือไม่เช็ค แล้วถ้าค่าไหนถูกเช็ค ก็เลือก radio นั้นส่งไป แต่นี้ดันส่งไปทั้ง สี่ radio เลยครับ ผมเลยงงว่า ทำไม ถึงไม่ยอมส่งเฉพาะ ค่าที่ถูกเลือกเท่านั้นอะครับ ช่วยทีนะครับ

ตรงนี้ ก็ในเมื่อ querystring ที่คุณส่งไป

"&tEquipment=" + encodeURI( document.getElementById("Equipment").value ) +
"&tChemical=" + encodeURI( document.getElementById("Chemical").value ) +
"&tEbzyme=" + encodeURI( document.getElementById("Ebzyme").value ) +
"&tOther=" + encodeURI( document.getElementById("txtOther").value ) +

ตรงนี้คุณกำหนดเองนิครับว่าให้เอาทุกค่าไป มันต้องได้ 4 ค่าอยู่แล้วนิครับ ถูกไหม ?

Radio เป็นการเลือกค่า ๆ เดียวจาก Group Field ครับ

มันจะไม่ซ้ำกัน ตรง Attr name ครับ ต่อให้มี เป็นร้อยเป็นพัน radio แต่ attr name เดียวกัน มันก็จะ unchecked ทุก name ที่เหมือนกับตัวที่เราคลิ๊กออกหมด
ไม่เหมือนกับ checkbox ที่เลือกได้หลายค่า ดังนั้น checkbox ในการส่งเราจะนิยมส่งเป็น Array
แต่ radio มีหนึ่งเท่านั้น

ดังนั้งในตอน ที่เราสร้าง querysting ลอง ถ้าจะให้ถูกหลัก เปลี่ยนมาใช้ document.getElementByNames("Order_type")[0] การทำแบบนี้ต้องระบุ ตำแหน่งของ name อีกว่าตำแหน่งที่เท่าไร ซึ่งเราก็ไม่รู้อีกต้องวนลูปอีก แล้วก็เช็ค attr ว่าตัวไหน check แล้วเอาค่านั้นมาเป็น value ยากได้อีก

ลองเปลี่ยนเป็น myform.Order_type.value ดูไหม ง่ายที่สุด

คือ myform คือ name ของ form

<form name="myform">

Order_type คือ name ของ input ต่างๆ ใน form

.value คือค่า ของ input ตัวนั้น ที่มีการ checked จบ

ปล เราจะใช้ document.getElement ต่าง ๆ เพื่อใช้การเข้าถึงข้อมูลครับ เช่น อยากให้ตัวเปิดปิด หรือทำอะไรกับมัน

ถ้าอยากทำ query string แนะนำให้ใช้ form.name.value ดีกว่าครับ

ปล อีก ถ้ามีเวลาซักนิด ลองหา javascript framework มาใช้หนอ่ยครับ

ถ้าเจอ field มาก ๆ อาจจะเป็นลมได้ ไหนจะส่ง name ส่ง value มีผิดแน่ ๆ ถ้าเยอะ ๆ

เราสามารถใช้ $('#myform').serialize() มันจะนำค่าทั้งหมดมาอยู่ใน รูปแบบของ query string ได้อย่างอัติโนมัติ

ลดการผิดพลาด เนื่องจากเอา name ไม่ครบ หรือไม่ถูกต้อง ความชัวมันมีมากกว่าเยอะครับ ความถูกต้องแทบจะร้อยเปอร์เซ็น

ขออภัย ถ้าต้องเขียนยาว ๆ เพราะว่าอยากให้เข้าใจ concept ด้วยครับผม

จะได้ต่อยอดที่หลังได้

ถ้าผิดพลาดประการได้ แย้งได้เลยครับผม ยินดีครับ ฟัง
Date : 2010-06-30 01:29:51 By : orion
 


 

No. 6



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

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

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

เหมือน script นี้จะ error นะคะเนี่ย ยังไม่ได้ตอบคำถามนะคะ แต่ดู ๆ แล้ว ไม่น่าจะทำงานได้เท่านั้นค่ะ
ถ้าเข้าใจผิดก็ต้องขออภัยค่ะ
Date : 2010-06-30 09:01:49 By : ultrasiam
 


 

No. 7



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



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


ขอบคุณครับ ผมแก้เสร็จแล้วแหละครับ
Date : 2010-06-30 09:08:02 By : SOUL
 


 

No. 8



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

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

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

แนะนำให้ทำตามที่คุณ Guest:orion ว่ามาในเรื่องของ radio ค่ะ

เพิ่มเติมคือ น่าจะเช็คค่าก่อน กำหนด parameter >> var pmeters นะคะ
ได้ค่าที่แน่นอน ถูกต้องแล้ว จึงกำหนดค่าให้ var pmeters

และ ใช้ document.getElement ต่าง ๆ น่าจะปลอดภัยกว่า myform.Order_type.value
ถ้าจำไม่ผิด myform.Order_type.value ใช้กับ Firefox ไม่ได้

Ps.ถ้าเข้าใจอะไรผิดต้องขออภัยด้วยค่ะ
Date : 2010-06-30 09:09:13 By : ultrasiam
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูให้หน่อยนะครับ เกี่ยวกับเรื่อง ของ radio ที่ส่งค่าโดย javacript
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่