คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 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);
})
<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);
})
▼ กำลังโหลดข้อมูล... ▼
แสดงความคิดเห็น
คุณสามารถแสดงความคิดเห็นกับกระทู้นี้ได้ด้วยการเข้าสู่ระบบ
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 ] ได้โดยตรง
พอจะแนะนำผมได้หรือเปล่าครับ