Ajax/Jquery คำถามของมือใหม่หัดเขียน...

กระทู้คำถาม
ผมเพิ่งหัดเขียนได้ไม่กี่วันครับ ความรู้ก็งูๆปลาๆ เริ่มถามเลยละกันนะครับ
สมมุติว่าในไฟล์ ajax.php ของผมมี element h3 อยู่ 5 elements เหมือนในข้างล่าง


...<body>
...
<h3>text1</h3>
<h3>text2</h3>
<h3>text3</h3>
<h3>text4</h3>
<h3>text5</h3>
...
</body>...


ผมต้องการส่งค่าใน element h3 ทั้งหมดไปให้กับไฟล์ somefile.php โดยการขียน Ajax ดังข้างล่างนี้


...<script>
...
$(document).ready(function(){
  var i;
  var n = $("h3").length; // ในที่นี้ n=5
  for (i=0; i<n; i++)
  {
      $.post("somefile.php",{param:$("h3:eq(i)").text()},function(res){
      alert(res);
      })
  };
});
...
</script>...


ความต้องการของผมคืออยากให้มันส่ง $("h3:eq(1)"), $("h3:eq(2)"), $("h3:eq(3)"), ... ไปให้ somefile.php
แล้วให้ somefile.php echo กลับมาเป็นค่าในแต่ละ element เดิม เพื่อ alert(res)
ปัญหาคือผมเขียนให้ somefile.php รับค่าจาก script ด้านบนไม่เป็น (ไม่สามารถใช้วิธี echo $POST['param'] ได้ และผมไม่ทราบว่า $POST['param'] เป็น array หรือเปล่า)
ผมมีแนวคิดอยากให้ตัวแปร param กลายเป็นอะไรคล้ายๆ param[ i ] (เมื่อ i = 0, 1, 2, ... ,4)
แต่ผมไม่สามารถแทน param ด้วย param[ i ] ได้โดยตรง
พอจะแนะนำผมได้หรือเปล่าครับ
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
<div class="senddata">
<h3>text1</h3>
<h3>text2</h3>
<h3>text3</h3>
<h3>text4</h3>
<h3>text5</h3>
</div>


var arr=[];
$('.senddata').find('h3').each(function(){
arr.push($(this).text());
});

$.post("somefile.php",arr,function(res){
      alert(res);
})
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่