Passer un tableau javascript en php via ajax
Résolu
abirgl
Messages postés
127
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Ajax send array
- Local send - Télécharger - Divers Utilitaires
- Send personally - Télécharger - Gestion de données
- Net send - Télécharger - Messagerie
- Send to windows - Guide
- Protecting send service jvc - Forum Autoradio
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 :
Bonne journée,
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,
merci pour les remarques ^^ ,
j'ai testé le code que vous avez posté mais ça n'a rien affiché, j'ai fait f12 pour voir ce qui s'affiche en console et j'ai trouvé l'erreur :"Uncaught ReferenceError: $ is not defined at ..."
:(
Puisque tu ne l'avais pas précisé dans ton premier code, je pensais que tu l'avais déjà inclus.
Sinon :
PS : sans le
Le tableau affiché en alert provient de l'affichage du tableau php. Si tu n'a pas besoin de récupérer le résultat de ton traitement php via javascript, la requête ajax est alors inutile et tu pourrais simplement utiliser un formulaire.
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)
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