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 > การวนลูป ของ jquery .each ค่าแรกแสดง พอกด+เพิ่ม ค่าต่อไปไม่แสดง



 

การวนลูป ของ jquery .each ค่าแรกแสดง พอกด+เพิ่ม ค่าต่อไปไม่แสดง

 



Topic : 123307



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



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




Code (Java)
$("#age").change(function(){		
			var formData = new FormData($('form')[0]);
			$.ajax({
				url : "test.php",
				data : formData ,
				type : "POST",
				cache: false,
				contentType: false,
				processData: false,
				enctype : "multipart/form-data" ,
				success : function( data ){
					$("#showtext").html(data);
				},
				complete : function(){
				}
				});
				
		});


Code (PHP)
    <select class="form-control" name="age[]" id="age" required>
                                      <option>ช่วงอายุ</option>
                                      <option value="boy">ผู้ใหญ่ (10 ปีขึ้นไป)</option>
                                      <option value="kid">เด็ก (2-9 ปี)</option>
                                      <option value="baby">ทารก</option>
                                    </select>




อยากให้กด เลือก select ตัวไหนก็ได้แล้วส่งข้อมูลไป ทั้งฟอม ไม่ใช่แค่ตัวแรกตัวเดียวนะครับ
text

select ตัวแรกส่งค่า ไปไฟล์ test.php ได้ พอกด + เพิ่ม select มาอีกตัว แต่ไม่มีค่าส่งไป แต่พอกลับมากดที ่select ตัวแรกก็ จะมาค่าวิ่งส่งไปทั้งหมด

อธิบายไม่เก่งนะครับ ผมยังงๆ เลย 555



Tag : PHP, HTML/CSS, JavaScript, jQuery









ประวัติการแก้ไข
2016-06-13 12:09:04
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-06-13 12:06:33 By : promos33 View : 2799 Reply : 20
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


เปลี่ยน id="age"

เป็น class="age"

ID ควรจะมีแค่ อันเดียวใน document ไม่ควรมีหลายอัน (แม้มันจะมีได้ก็ตาม)
โดยพื้นฐาน เมื่อ jquery เรียกใช้ id เมื่อพบอันแรก แล้วจะไม่หาอันต่อไป
result ที่ได้จะมีอันเดียว เป็น indevendual class

แต่ถ้าเป็น คลาส จะ หาอันต่อไป result ที่ได้จะเป็น array class






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 13:18:05 By : Chaidhanan
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-13 13:18:05
รายละเอียดของการตอบ ::
ขอบคุณมากครับ เดียวจะลองทำตาม วิธีที่บอกนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 13:44:57 By : promos33
 

 

No. 3



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

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

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

$("#age").change(function(){		
			var formData = new FormData($('form')[0]);
			$.ajax({
				url : "test.php",
				data : formData ,
				type : "POST",
				cache: false,
				contentType: false,
				processData: false,
				enctype : "multipart/form-data" ,
				success : function( data ){
					$("#showtext").html(data);
				},
				complete : function(){
				}
				});
				
		});

<select class="form-control" name="age[]" id="age" required>
                                  <option>ช่วงอายุ</option>
                                  <option value="boy">ผู้ใหญ่ (10 ปีขึ้นไป)</option>
                                  <option value="kid">เด็ก (2-9 ปี)</option>
                                  <option value="baby">ทารก</option>
                                </select>






เหมือนๆมันจะครอบอยู่ใน phpcode ถ้า name=age[] ส่งค่าไปเป็นอาร์เรย์แล้ว ผมคิดว่าถ้าเอาโค๊ด ajax มาใส่ไว้ในโค๊ด phpcode เลยมันน่าจะง่ายกว่า ถ้าหากใช้ลูป ของ jquery ไม่ถนัดนะครับ
โดยใช้ id=age[$i] ซึ่งเท่ากับว่าค่า id จะไม่ซ้ำกันเลย
ส่วนสคริปท์นี้
$("#age").change(function(){		
			var formData = new FormData($('form')[0]);
			$.ajax({
				url : "test.php",
				data : formData ,
				type : "POST",
				cache: false,
				contentType: false,
				processData: false,
				enctype : "multipart/form-data" ,
				success : function( data ){
					$("#showtext").html(data);
				},
				complete : function(){
				}
				});
				
		});


เพิ่มตรง $('#age<?=$i?>').change()
ค่า $i จริงๆ เราจะดึงเป็น $row[id] มาก็ได้ ซึ่งค่าไม่ซ้ำกันอยู่แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 14:43:14 By : Dragons_first
 


 

No. 4



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



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


เปลี่ยน id เป็น class="age"
element ที่ add มาใหม่ document ยังไม่รู้จัก
ต้องใช้คำสั่ง

$(document).on( "change", ".age", function() {

});

หรือ
$('.parent').on( "change", ".age", function() {

});
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 15:00:17 By : fossil31
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


https://www.thaicreate.com/php/forum/123242.html#00445519
ลองศึกษาอันนี้ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 15:18:15 By : Chaidhanan
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : Dragons_first เมื่อวันที่ 2016-06-13 14:43:14
รายละเอียดของการตอบ ::
Code (PHP)
 $i++; 

$("#age<?=$i?>").change(function(){
            	alert("test");

    	});

<select class="form-control" name="age[]" id="age<?=$i?>" required>
                                      <option>ช่วงอายุ</option>
                                      <option value="boy" >ผู้ใหญ่ (10 ปีขึ้นไป)</option>
                                      <option value="kid" >เด็ก (2-9 ปี)</option>
                                      <option value="baby" >ทารก</option>
                                    </select>


ไม่ได้มีการดึงค่า จาก DB มานะครับ
พอกด select ตัวแรก เท่ากับ age1
พอกด + ผมไปดู id ค่าที่+มา age1
เหมือนเดิมอยู่ดีครับ
อยากให้เวลา กด + แล้ว age2....n
อะครับ ผมอธิบายไม่งงนะครับ

ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 15:39:59 By : promos33
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-13 15:18:15
รายละเอียดของการตอบ ::
ขอบคุณครับ มือใหม่หัดเขียนครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 15:40:16 By : promos33
 


 

No. 8



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : fossil31 เมื่อวันที่ 2016-06-13 15:00:17
รายละเอียดของการตอบ ::
พอลองทำตามแล้ว jquery ไม่ทำงานเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 15:40:36 By : promos33
 


 

No. 9



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

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

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

2 จุด นะครับ
จุดแรก
form-control age เพิ่มชื่อคลาส

var formData = new FormData($('form')[0]); /// ฟังก์ชั่น FormData() ไม่รู้มาไงนะครับ แต่ลอง alert ดูก่อนว่ามีค่ามาหรือเปล่าก่อนส่งไปหน้าประมวลผล

หรือเปลี่ยนตรงๆเป็นแบบตัวนี้ var formData = $('.age').val();


ปล.น่าจะพอไปต่อได้นะครับ ทีแรกเข้าใจผิดนึกว่าผ่าน php loop มา แต่ไม่ได้เข้าใจว่า select มาจาก database ครับ แค่บอกเผื่อไว้ อาจจะมีงานได้ใช้แบบนี้ก็เท่านั้นเองครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 16:31:50 By : Dragons_first
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : Dragons_first เมื่อวันที่ 2016-06-13 16:31:50
รายละเอียดของการตอบ ::
รบกวนอีกหน่อยนะครับ
พอทำตามที่บอกแล้ว slect alert โชว์ค่ามา แต่พอกด + เรียก slect ตัวที่สองมา กลับไม่มีค่า alert โชว์ครับ อันนี้เป็นเพราะอะไรเหรอครับ

ะำหะ
เลือกผู้ใหญ่ 10ปีขึ้นไป alert boy ออกมา

แต่พอเลือก slectอันล่าง กับเงียบไม่มีแจ้งอะไรเลยคับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 17:21:17 By : promos33
 


 

No. 11



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

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

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

อาร์เรย์ส่งค่ามาไม่หมดครับ คืออยากให้กลับไปใช้ id=age แต่ระบุค่าลงไป จะเป็น [0] [1] [2] แล้วแต่ตอนกดเพิ่มตัว select option น่ะครับ
เพราะตอนนี้เหมือนมันส่งค่ามาไม่ถูกมันเรียกใช้แค่อาร์เรย์ตัวแรกเท่านั้น ลองแก้ปัญหาตัวที่สร้าง ฟอร์มอีกทีครับ ให้มันส่งค่ามาใส่ id=age[i] ให้ได้ก็น่าจะจบแล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 18:08:58 By : Dragons_first
 


 

No. 12



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


เหตุผลอยู่ คห 4

ทดลองโปรแกรมที่ ลิงค์ คห 5 ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 18:08:59 By : Chaidhanan
 


 

No. 13



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

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

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

ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-06-13 18:08:59
รายละเอียดของการตอบ ::
โปรแกรมใช้ได้เหมือนกัน ลองก๊อปไปใช้ดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 18:13:15 By : Dragons_first
 


 

No. 14



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



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


ขอบคุณครับ เดียวผมจะลองศึกษาต่อ นะครับเดียว ถ้างง หรือติดตรงไหนจะสอบถามเพิ่มนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 18:19:19 By : promos33
 


 

No. 15



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



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


ตอบความคิดเห็นที่ : 11 เขียนโดย : Dragons_first เมื่อวันที่ 2016-06-13 18:08:58
รายละเอียดของการตอบ ::
ขอบคุณครับ แต่ยังมือใหม่ยัง งงๆ อยู่ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-13 18:20:29 By : promos33
 


 

No. 16



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

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

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

ผมจะบอกสเต็ปให้นะครับ ถ้ายังมือใหม่
1.นับจำนวน element ที่ถูกสร้าง (ไม่เห็นโค๊ด แต่บอกว่ามันสร้าง select ไม่จำกัด) ที่สร้างขึ้นมา โดยอ้างอิงจากจำนวนที่ถูกสร้างขึ้นมาจริง เพราะข้อมูลจะได้ไม่ overflow หากเรากำหนดมันมากเกินจำนวนจริง

2.each(i).function(){
เอา ajax มาใส่ในนี้
});

3.เอาค่า i ไปใส่ใน onclick() ที่รับค่ามาจาก $('#age'+i).onclick()

4.ทบทวนลำดับการทำงานของโปรแกรมแล้วลอง1-3 ใหม่อีกรอบครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-14 09:40:01 By : Dragons_first
 


 

No. 17



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



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


ตอบความคิดเห็นที่ : 16 เขียนโดย : Dragons_first เมื่อวันที่ 2016-06-14 09:40:01
รายละเอียดของการตอบ ::
ขอบคุณครับ แต่ค่า i มันกำหนดตรงไหนครับ ยัง งง อยู่เลยครับ
Code (PHP)
$(".age").each(function(index, element) {
            
        });


 <select class="form-control age" name="age[]"  required>
                                      <option>ช่วงอายุ</option>
                                      <option value="boy" >ผู้ใหญ่ (10 ปีขึ้นไป)</option>
                                      <option value="kid" >เด็ก (2-9 ปี)</option>
                                      <option value="baby" >ทารก</option>
                                    </select>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-14 09:55:03 By : promos33
 


 

No. 18



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

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

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

i= ค่าใดๆ ที่รับต่อมาจากการสร้าง element ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-14 10:23:32 By : Dragons_first
 


 

No. 19



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



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


ไม่จำเป็นต้องสนใจค่า i เพราะเราไม่ต้องกำหนด id ก็ได้
อาจจะเก็บค่าใดๆใน attribute data เพราะ data เก็บได้หลากหลาย data-name="john", data-price="1000", data-id="1"
ตอนดึงค่า data มาใช้ ก็ $(selector).data("price");

ส่วนการดึงค่าแบบวน loop
var data1 = [];
$('parent selector').each(function() {
data1.push($(this).val());
}):
หรือ
$('parent input[name=age]:checked').each(function() {
data1.push($(this).val());
});

//test->alert(data1[0]) หรือ console.log(data1[0]); //data1[n]

//post->ajax
data = {'field1': data1, อื่นๆถ้ามี}
$.post(action, data, function(res){
//statement
});
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-14 11:17:39 By : fossil31
 


 

No. 20



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



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


ตอบความคิดเห็นที่ : 19 เขียนโดย : fossil31 เมื่อวันที่ 2016-06-14 11:17:39
รายละเอียดของการตอบ ::
ขอบคุณครับ เข้าใจขึ้นเยอะเลย พอได้เห็นภาพ เดียวจะลองฝึกฝนดูนะครัย ติดตรงไหนจะมาสอบถามเพิ่มนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-14 11:28:50 By : promos33
 

   

ค้นหาข้อมูล


   
 

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