Envoyer un tableau Javascript à PHP en utilisant Ajax (impossible de faire écho au tableau de PHP)
Sep 10 2020
J'ai un formulaire avec un simple bouton. En cliquant sur le bouton, la fonction delete_data()est appelée. Cette fonction remplit un tableau avec des données. Je voudrais envoyer ce tableau à PHP avec Ajax.
Problème : Lorsque vous utilisez le event.preventDefault();comme vous pouvez le voir dans mon code JavaScript, les messages d'alerte de réussite sont affichés ("OK") mais je n'obtiens pas l'écho de mon script php.
Pouvez-vous corriger mon code ci-dessous ou me dire ce qui ne va pas? Merci beaucoup!
CODE 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>
CODE 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");
}
});
CODE PHP
<?php
include_once("./conn.php");
if(isset($_POST['arr'])){ $arr = json_decode($_POST['arr']); echo $arr; //can't echo
}else{
echo "Failed";
}
?>
Réponses
1 Wimanicesir Sep 10 2020 at 18:22
C'est logique que vous ne voyez pas l'écho. Ajoutez un paramètre à la fonction de réussite comme ceci:
$.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");
}
});