|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2010 Messages : 136 ![]() |
Bonjour
Voila j'ai une variable a transmettre cette variable est en fait un tableau "array" quand je la transmet par url dans l'url est ecrit ceci : localhost/admin/client-traitement2.php?tabCheckbox=Array est'ce normal? et pourrais-je récupérer dans ma page client-traitement2.php les valeurs de cet array transmissent dans l'url ou vaut'il mieux directement faire un $SESSIOn de cet array ou voyez-vous autre chose? merci |
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 249 ![]() |
je vote pour les sessions...
si ton array commence a avoir une dizaine d'entrees... tu vas te retrouver avec des url a rallonge sinon, pour ton info, tu peux utiliser serialize() et unserialize() (si tu veux vraiment passer par l'url)
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#3 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
D'après ce que j'ai compris, serialize/unserialize, c'est pour transmettre des objets, et pour les tableaux, c'est implode/explode
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
01
|
|
|
#4 | |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Salut,
Citation:
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
|
00
|
|
|
#5 | |||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Les sessions sont tous de même prévus pour stocker/mémoriser des données tout au long de la navigation de l'internaute. Or, est-ce réellement le cas, n'est pas plutôt temporaire, juste le passage d'une ou 2 pages ? Stocker en session de manière un peu abusive peu faire au qu'au bout cette session contienne beaucoup de données inutiles. Si c'est juste pour transmettre le contenu d'un tableau, alors un formulaire serait tout aussi bien, suffit de faire une boucle sur ce tableau et mettre ces données dans des champs cachés. Exemple : Code :
$_POST['tabCheckbox'][0] (valeur du 1er élément) $_POST['tabCheckbox'][1] (valeur du 2ème élément) etc ... Donc il suffit de faire une boucle foreach() sur $_POST['tabCheckbox'] pour obtenir toutes les valeurs (même structure que celle d'origine). Tout ceci en supposant que $array soit un tableau à 1 dimension. On peu aussi le faire avec des tableaux à plusieurs dimensions, faut adapter un peu quand même. Ou alors, si on tient à transmettre tout ça par un lien, alors la fonction http_build_query() est théoriquement faite pour ça.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||
|
|
00
|
|
|
#6 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
OK, mais les sessions, ça ne marche que si on reste sur le même serveur, donc si on veut (comme c'était mon cas lorsque j'ai dû le faire) transmettre sur un serveur différent, on peut recourir à un formulaire avec implode (ou serialize comme l'indique Eric2A) + un champ hidden (et du coup, pas besoin de boucle, comme le propose RuncodePHP, car on transfère en une seule variable (de type string) le tableau) ; le seul aléa, contrairement aux sessions, c'est qu'on a un bouton "transmettre".
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Le faire une ou deux fois, passe encore, mais si on généralise un peu trop cette façon de procéder, au bout d'un certain temps ça rend le code limite incompréhensible, difficile à comprendre, grosse perte de temps après, voir des maux de têtes. De plus, si on sérialise, il faudra très certainement encoder la chaine, genre urlencode(). Le jour où il faudra soit faire évoluer cette partie, ou alors le déboguer, ça va être la croix et la bannière, et ça, rien que pour se remémorer ce qu'on a nous même fait. N'en parlons pas pour celui qui passe derrière. Un tableau c'est des couples de clés=valeurs, au même titre qu'une variable, elle a un nom et une valeur, au même titre qu'un input, un nom et une valeur. De plus, faire une boucle, c'est franchement rien du tout, ça prend même pas 1 minute pour le faire, et à peine 1 minute de plus pour créer le formulaire. Celui qui tentera de comprendre cette partie là, il prendra guère plus d'une minute tellement cela et simple est limpide. Faut juste espérer que le tableau soit à une dimension. S'il y en a plus, un format comme Json pourrait être une solution car Php intègre toutes les fonctions pour ça (json_encode, json_decode). Ce que je veux dire par là, c'est que ce n'est pas parce qu'on a un tableau sous l'bras qu'il faille à tout prix le renvoyer comme il est, je drirais que ça dépend de ce qu'il doit être fait après. S'il y a moyen de faire simple, pourquoi chercher compliquer ? La dessus, BONNE ANNEE
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#8 | |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
Citation:
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : juin 2007 Messages : 336 ![]() |
Tu peu aussi imaginer générer un uniqueId ( propre à un visiteur) que tu passe par url, et stoker les données le concernant dans une base de donnée, pour ensuite pouvoir les faire évoluer
A voir
__________________
Conception / Dev |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com