ถ้าเราจะทำ SELECT OPTION แบบ Dynamic ที่สามารถเลือกแล้วอัปเดทได้เลยต้องใช้คำสั่งอะไรครับ ผมหาข้อมูลไม่เจอครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ถ้าเราจะทำ SELECT OPTION แบบ Dynamic ที่สามารถเลือกแล้วอัปเดทได้เลยต้องใช้คำสั่งอะไรครับ ผมหาข้อมูลไม่เจอครับ

ถ้าเราจะทำ SELECT OPTION แบบ Dynamic ที่สามารถเลือกแล้วอัปเดทได้เลยต้องใช้คำสั่งอะไรครับ ผมหาข้อมูลไม่เจอครับ

สวัสดีคับ ผมทำหน้าการปรับสถานะ ของรายการนั้น เดิมผมใช้แบบฟร้อมแก้ไขทั่วไป คลิกเข้าไปแล้วเปลี่ยนแล้วอัปเดท

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



Sun Yuttakarn 20-06-2016 16:22:53

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ดัก event onchange แล้วส่งค่าไปใน ajax ลองดูเนือหานี้เป็นแนวทาง
 
กำหนดรายการใน listbox ที่ 2 จากเงื่อนไขการเลือก listbox ที่ 1 ด้วย ajax ใน jquery อย่างง่าย 


ninenik 20-06-2016
 ความคิดเห็นที่ 2

ขอโทษครับที่ผมสือสารผิด

 

ผมแสดงรายแบบ SELECT ออกมได้แล้วครับ ที่ผมหมายถึงคือ

 

พอแสดงมาแล้ว ประมาณมาว่า หมายตัวอันก่อนที่เอามาให้ผม

 

พอแสดงมาแล้วจะโชว์ค่าที่เลือกก่อน  เช่นใน table ฟิวชื่อ  confirm enum yes no

ในรายนั้น ผมเลือก yes ไว้

 

พอผมเอามาแสดง ก็จะโชว์ yes อันดับแรก และ no อันสอง  และพอผมเปลี่ยนไปเลือก no ก็ให้มันอัปเดทเป็น no ไปเลย โดยที่ไม่ต้อง acrion หรือปุ่ม subbmit อะไรครับ



Sun Yuttakarn 20-06-2016 21:00
 ความคิดเห็นที่ 3
   ตามลิ้งค์ที่แนะนำหนะ เข้าใจถูกแล้ว แต่คิดว่าจะยังคงไม่ค่อยเข้าใจ
โค้ดตามตัวอย่างที่แนะนำคือ เมื่อเปลี่ยนค่า select option เช่นจาก yes ไป no ก็จะให้ ajax ส่งค่าใหม่
ไปยังไฟล์ที่เราจะบันทึกข้อมูล และก็อัพเดทค่านั้นในทันที 

สมมติไฟล์อัพเดทเราชื่อ update_status.php โค้ดคร่าวๆ เชนรับค่าที่ส่งมาแบบโพสแล้วอัพเดท

<?php
header("Content-type:text/html; charset=UTF-8");              
header("Cache-Control: no-store, no-cache, must-revalidate");             
header("Cache-Control: post-check=0, pre-check=0", false);   
include("connect.php");  // https://www.ninenik.com/content.php?arti_id=527 
if(isset($_POST['am_id']) && $_POST['am_id']!="" && isset($_POST['id_user']) && $_POST['id_user']!=""){
	$sql="  
	UPDATE user SET
	am_id='".$_POST['am_id']."' WHERE id_user='".$_POST['id_user']."'
	";  
	$result=$mysqli->query($sql);   
	if($result){
		if($mysqli->affected_rows>0){
			echo 1; // แสดงค่าว่ามีการอัพเดทข้อมูลด้วย 1
		}else{
			echo 0; // ไม่มีการอัพเดทข้อมูล
		}
	}
}
?>


โค้ดของไฟล์การใช้งาน ajax และส่งค่า POST

<select name="am_id" id="am_id">
	<option value="1" selected>1</option>
	<option value="2">2</option>
	<option value="2">3</option>        
</select>
<input type="hidden" name="user_id" id="user_id" value="6">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>    
<script type="text/javascript">  
$(function(){  
      
    // เมื่อเปลี่ยนค่าของ select id เท่ากับ am_id  
     $("select#am_id").on("change",function(){
         // ส่งค่า ตัวแปร am_id และ user_id มีค่าเท่ากับค่าที่เลือก ส่งแบบ post ไปที่ไฟล์ update_status.php  
         $.post("update_status.php",{  
             am_id:$(this).val(),
			 id_user:$("#user_id").val()  
         },function(data){ // คืนค่ากลับมา  
			if(data==1){
				// ทำงานอัพเดทสำเร็จ	
			}
         });  
    });       
     
      
});  
</script>    


ลองหาข้อมูลศึกษาเกี่ยวกับการใช้งาน ajax ใน jquery เพิ่มเติมดู


ninenik 21-06-2016
 ความคิดเห็นที่ 4
ขอบคุณครับ


Sun Yuttakarn 21-06-2016 18:14
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ