ส่งอาร์เรย์ Javascript ไปยัง PHP โดยใช้ Ajax (ไม่สามารถสะท้อนอาร์เรย์จาก PHP ได้)
Sep 10 2020
ฉันมีรูปแบบที่มีปุ่มธรรมดาอยู่ในนั้น เมื่อคลิกที่ปุ่มฟังก์ชันdelete_data()จะถูกเรียกใช้ ฟังก์ชันนี้เติมเต็มอาร์เรย์ด้วยข้อมูล ฉันต้องการส่งอาร์เรย์นี้ไปยัง PHP ด้วย Ajax
ปัญหา : เมื่อใช้event.preventDefault();ตามที่คุณเห็นในโค้ด JavaScript ของฉันข้อความแจ้งเตือนความสำเร็จจะปรากฏขึ้น ("ตกลง") แต่ฉันไม่ได้รับเสียงสะท้อนจากสคริปต์ php ของฉัน
คุณช่วยแก้ไขรหัสของฉันหรือบอกฉันว่ามีอะไรผิดปกติ ขอบคุณมาก!
รหัส HTML
<form id="form" method="POST">
<button type="button"id="delete" onclick="delete_data();" name="delete"><i class="fa fa-remove" aria-hidden="true"></i> Delete Zone(s)</button>
</form>
รหัส JavaScript
function delete_data(){
event.preventDefault();
var checkedIds = $(".chk:checked").map(function() { return this.id; }).toArray(); var Arr = JSON.stringify(checkedIds); $.ajax({
type: "POST",
url: "./delete_measurement.php",
data: {arr: Arr},
cache: false,
success: function(){
alert("OK");
}
});
รหัส PHP
<?php
include_once("./conn.php");
if(isset($_POST['arr'])){ $arr = json_decode($_POST['arr']); echo $arr; //can't echo
}else{
echo "Failed";
}
?>
คำตอบ
1 Wimanicesir Sep 10 2020 at 18:22
เป็นตรรกะที่คุณไม่เห็นเสียงสะท้อน เพิ่มพารามิเตอร์ให้กับฟังก์ชันความสำเร็จดังนี้:
$.ajax({
type: "POST",
url: "./delete_measurement.php",
data: {arr: Arr},
cache: false,
success: function(data){
// This will show what you echo in PHP (in the console)
console.log(data)
alert("OK");
}
});