Passer un tableau javascript en php via ajax
Résolu
abirgl
Messages postés
147
Statut
Membre
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour,
J'ai besoin de passer un tableau javascript en php, pour ce faire j'ai essayé d'utiliser ajax mais ça m'affiche un message d'erreur "Undefined index: tab in ..." , voici le code de mon fichier testajax7.php:
j'ai mis testajax7.php dans url: de la fonction ajax parce que j'ai besoin du tableau dans la même page (tout le traitement se fait dans la même page)
SVP, comment je peux modifier ce code pour que je puisse récupérer le tableau en php ?
Merci d'avance
J'ai besoin de passer un tableau javascript en php, pour ce faire j'ai essayé d'utiliser ajax mais ça m'affiche un message d'erreur "Undefined index: tab in ..." , voici le code de mon fichier testajax7.php:
<script type="text/javascript">
var tab=['a','b','c','d'];
</script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "testajax7.php",
data: { tab : tab},
success: function() {
alert("Success");
}
});
</script>
<?php
$myTable = $_POST['tab'];
print_r($myTable);
?>
j'ai mis testajax7.php dans url: de la fonction ajax parce que j'ai besoin du tableau dans la même page (tout le traitement se fait dans la même page)
SVP, comment je peux modifier ce code pour que je puisse récupérer le tableau en php ?
Merci d'avance
1 réponse
-
Salut,
Ton code fonctionne mais au premier chargement de la page, la variable $_POST['tab'] n'existe pas encore (créée ensuite par la requête ajax) d'où le message d'erreur.
Il faut vérifier l'existence de cette variable avec isset ou empty.
Au passage :
- en html5, plus besoin de préciser l'attribut type pour du code js sur les balises script
- pas besoin de fermer et ouvrir les balises script si il n'y a rien entre les deux
- tu peux cibler la page actuelle en utilisant le symbole #
Exemple de correction :<?php if (isset($_POST['tab'])) { $myTable = $_POST['tab']; print_r($myTable); } else { ?> <script> var tab=['a','b','c','d']; $.ajax({ type: "POST", url: "#", data: { tab : tab}, success: function(data) { alert(data); } }); </script> <?php } ?>
Bonne journée,-
-
Oui la fonction $.ajax fait partie de jQuery.
Puisque tu ne l'avais pas précisé dans ton premier code, je pensais que tu l'avais déjà inclus.
Sinon :<?php if (isset($_POST['tab'])) { $myTable = $_POST['tab']; print_r($myTable); } else { ?> <script src=""quot;https://code.jquery.com/jquery-3.1.1.min.js"></script> <script> var tab=['a','b','c','d']; $.ajax({ type: "POST", url: "#", data: { tab : tab}, success: function(data) { alert(data); } }); </script> <?php } ?>
PS : sans le"quot;
-
-
-
Bonjour Pitet,
Je crois que j'ai pas bien expliqué mon besoin, j'essaye de réexpliquer :
J'ai un tableau javascript (il n'est pas le résultat d'un traitement php, c'est un simple tableau javascript)
var tab=['a','b','c','d'];
par suite, je veux utiliser ce tableau pour un traitement php, j'ai pas trouvé comment le passer de javascript à php, on m'a dit que ajax est la solution , et voilà j'essaye de transmettre mon tableau javascript via ajax pour récupérer enfin un tableau php,
le tableau dont j'ai besoin en php doit être comme suit :
$tab=array('a','b','c','d');
Est ce que c'est possible de le faire avec ajax ou je dois chercher une autre façon de faire ceci ?
PS: Tout le traitement doit s'effectuer dans la même page (dans url de la fonction ajax ça doit rester #)
Merci énormément pour vos réponses et vos efforts
-