Senden Sie ein Javascript-Array mit Ajax an PHP (das Array kann nicht aus PHP wiedergegeben werden).
Sep 10 2020
Ich habe ein Formular mit einer einfachen Schaltfläche. Beim Klicken auf die Schaltfläche wird die Funktion delete_data()aufgerufen. Diese Funktion füllt ein Array mit Daten. Ich möchte dieses Array mit Ajax an PHP senden.
Problem : Wenn Sie das verwenden, event.preventDefault();wie Sie in meinem JavaScript-Code sehen können, werden die Erfolgswarnmeldungen angezeigt ("OK"), aber ich erhalte das Echo nicht von meinem PHP-Skript.
Könnten Sie meinen Code unten korrigieren oder mir sagen, was falsch ist? Vielen Dank!
HTML QUELLTEXT
<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-CODE
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 CODE
<?php
include_once("./conn.php");
if(isset($_POST['arr'])){ $arr = json_decode($_POST['arr']); echo $arr; //can't echo
}else{
echo "Failed";
}
?>
Antworten
1 Wimanicesir Sep 10 2020 at 18:22
Es ist logisch, dass Sie das Echo nicht sehen. Fügen Sie der Erfolgsfunktion einen Parameter wie folgt hinzu:
$.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");
}
});