จากการใช้การกำหนดรายการจาก listbox2 จากเงือนไขการเลือกจากตัวอย่าง อยากจะใช้การ clone ร่วมด้วย

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

จากการใช้การกำหนดรายการจาก listbox2 จากเงือนไขการเลือกจากตัวอย่าง อยากจะใช้การ clone ร่วมด้วย
กำหนดรายการใน listbox ที่ 2 จากเงื่อนไขการเลือก listbox ที่ 1 ด้วย ajax ใน jquery อย่างง่าย 
https://www.ninenik.com/content.php?arti_id=207 via @ninenik

แต่เมื่อclone แล้วค่าก็จะรีเซตใหม่ช่องต่อช่อง


Arachi 20-12-2016 13:02:43

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

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


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


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

 ความคิดเห็นที่ 1
เปลี่ยนจากอ้างอิงไอดี id เป็นอ้างอิงจากคลาส class กำหนด css class ให้กับ select เช่น
 
<select name="list1[]" class="my_css1">  
  <option value="">เลือกรายการ</option>  
  <option value="1">เลือกรายการ 1</option>  
  <option value="2">เลือกรายการ 2</option>  
  <option value="3">เลือกรายการ 3</option>  
  <option value="4">เลือกรายการ 4</option>  
  <option value="5">เลือกรายการ 5</option>                  
  </select>  
 
และ
 
<select name="list2[]" class="my_css2">    
  <option value="">เลือกรายการ</option>  
</select>  
 
 
ในขั้นตอนการ clone ให้กำหนดให้ list ตัวที่สองรีเซ็ตค่าด้วย โดยเพิ่มประมาณนี้
 
.find(".my_css2").html(`<option value="">เลือกรายการ</option>`).end()
 
เช่น
 
	$("#addRow").click(function(){
		// ส่วนของการ clone ข้อมูลด้วย jquery clone() ค่า true คือ
		// การกำหนดให้ ไม่ต้องมีการ ดึงข้อมูลจากค่าเดิมมาใช้งาน
		// รีเซ้ตเป็นค่าว่าง ถ้ามีข้อมูลอยู่แล้ว ทั้ง select หรือ input
		$(".firstTr:eq(0)").clone(true) 
		.find("input").attr("value","").end()
		.find("select").attr("value","").end()
        		.find(".my_css2").html(`<option value="">เลือกรายการ</option>`).end()
		.appendTo($("#myTbl"));
	});
 
ส่วนในขั้นตอนการเรียกใช้ ajax ให้เปลี่ยนจากการอ้างอิงไอดีที่เดิมใช้ # เป็นใช้ css class ใช้ . จุดแทน
 
 
    // เมื่อเปลี่ยนค่าของ select id เท่ากับ list1  
     $(".my_css1").change(function(){    
         var indexObj = $(".my_css1").index(this);
         $.get("data_for_list2.php",{  
             list1:$(this).val()  
         },function(data){ // คืนค่ากลับมา  
                $(".my_css2").eq(indexObj).html(data);  
         });  
    });       


ninenik 20-12-2016
 ความคิดเห็นที่ 2
ขอบคุณมากครับ


arachi 20-12-2016 15:32
 ความคิดเห็นที่ 3
   ข้อสอบถามต่ออีกนิดนึงนะครับ คือได้ข้อมูลมาจากฐานข้อมูลแล้วจะนำไปคำนวณต่ออย่างไรครับ 


arachi 21-12-2016 15:19
 ความคิดเห็นที่ 4
ดูความเห็นที่ 3 จากกระทู้นี้เป็นแนวทาง

https://www.ninenik.com/forum_view_2146_1.html


ninenik 21-12-2016
 ความคิดเห็นที่ 5
ออกตัวแรกตัวเดียวอ่าครับ หลังจากนั้น NaN


arachi 21-12-2016 18:16
 ความคิดเห็นที่ 6
รบกวนถามอีกหน่อยนะครับ จากภาพ โดยจะมีตัวเลขอยู่หนึ่งจำนวนเป็นตัวตั้ง เช่น 1000 และเลือกใส่ข้อมูลช่องใดช่องหนึ่งก็ได้  ถ้าใส่ช่องซ้าย ทางขวาก็จะคิดเป็นกี่เปอร์เซ็นจากจำนวนตัวตั้ง  ถ้าใส่ข้อมูลทางขวาเป็นจำนวนเปอร์เซ็น ทางซ้ายก็จะคิดเลขออกมา


arachi 06-01-2017 19:35
1






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