Pb pour recuperer le contenu d'un form/select sous PHP
MarcStrup
Messages postés4Date d'inscriptionvendredi 12 juillet 2002StatutMembreDernière intervention17 juillet 2002
-
12 juil. 2002 à 17:03
cs_jeca
Messages postés341Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention14 juillet 2011
-
17 juil. 2002 à 14:07
Bonjour,
Le pb est le suivant :
- Pour recuperer le contenu d'une liste (form/select de type liste), je dois nommer le select sous le forme 'monselect[]', au lieu de son nom initial 'monselect'.
- Javascript n'aime pas du tout ces noms-la. Or c'est le seul moyen que je connaisse pour recuperer la liste sous PHP. Et j'aimerais bien conserver les Javascripts developpes...
Suis coince.
Merci pour votre aide.
Marco Polo
A voir également:
Pb pour recuperer le contenu d'un form/select sous PHP
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 12 juil. 2002 à 18:18
Je ne vois pas enquoi tu est obligé de garder un nom de tableau...
Tu fais le select avec son nom "monselect" (sans passer par PHP), puis tu fais ensuite les opérations avec le tableau monselect...
MarcStrup
Messages postés4Date d'inscriptionvendredi 12 juillet 2002StatutMembreDernière intervention17 juillet 2002 13 juil. 2002 à 09:47
Le Pb est que php me retourne 1 element du select, et non la liste des elements du select.
Autrement dit, php ne voit pas 'monselect' comme une array.
Hors, l'ergonomie fait que le contenu de la liste est différent entre le moment ou je l'initialise et le moment ou je cherche a la relire. C'est le role des scripts Javascript qui me prennent des elements d'une liste pour le mettre dans cette liste, ou qui permettent au user de retirer des elements.
Autre pb interessant, Javascript interprete correctement des 'document.forms[0].cechamp.value', mais refuse obstinement de faire un 'document.forms[0].submit()', me disant que cet objet ne gère pas cette méthode... Alors que sa version html le digere ...
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 13 juil. 2002 à 12:18
Ton truc ressemble à un shopping cart, n'est-ce pas ? Et si j'ai bien compris, tu veux le réaliser côté client avec JS de manière à e pas avoir à recharger la page...
Une méthode possible : Flash. Mais en PHP, on peut faire des truc pas mal avec les objets, en les transmettant de page en page.
Je pense qu'on ne peut pas utiliser les listes de cette manière, car PHP ne renvoie que l'élément sélectionné.
cs_jeca
Messages postés341Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention14 juillet 201114 17 juil. 2002 à 11:44
Bonjour,
j'ai eu un probleme similaire que j'ai résolu de la manière suivante :
- création d'un bloc
nommé dans le html
- ensuite à chaque sélection de l'utilisateur, outre l'affichage à l'écran, création en javascript d'un champ caché dont le nom sera toujours le même
(ex : article[]) en utilisant document.id_balise_div.innerHTML. (avec IE 5.5)
lorsque je "post" le formulaire, php récupère le tableau "article".
MarcStrup
Messages postés4Date d'inscriptionvendredi 12 juillet 2002StatutMembreDernière intervention17 juillet 2002 17 juil. 2002 à 11:55
Merci a tous pour votre aide et vos suggestions.
Jeca, j'avais pas pense à maintenir une liste chachee en parallele, mais c'est une super bonne idee.
Finalement je m'en suis sorti en faisant dans les Javascript reference a
document.forms[0].elements[4]....
plutot qu'a
document.forms[0].monselect...
Moyennant ça, j'ai pu appeler ma liste 'monselect[]' et recuperer le resultat sous PHP.
Me reste un problème tres tres tres con.
Javascript refuse le
document.forms[0].submit() !!!!
Il me dit que forms[0] n'est pas un objet ou est null...
Alors qu'un bouton submit fonctionne....
Et que toutes les commandes sur ses elements fonctionnent...
Il n'y a pas de layers.