Pb pour recuperer le contenu d'un form/select sous PHP

MarcStrup Messages postés 4 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 17 juillet 2002 - 12 juil. 2002 à 17:03
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 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

7 réponses

cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Derniè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...

Dean
0
MarcStrup Messages postés 4 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 17 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 ...

Merci pour votre réponse.

Marco Polo
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Derniè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é.

Dean
0
MarcStrup Messages postés 4 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 17 juillet 2002
15 juil. 2002 à 10:45
-->'Je ne vois pas en quoi tu est obligé de garder un nom de tableau...'

Parce que PHP l'exige. Je vais trouver une autre soluce. Merci de votre attention.

Marco Polo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
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".

Si tu veux plus de code, met moi un message.

cordialement

jc
0
MarcStrup Messages postés 4 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 17 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.

Marco Polo
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
17 juil. 2002 à 14:07
je ne vois pas le problême, car le script ci-dessous fonctionne. (IE 5.5)
Il est en "get". Tu pourras voir la querystring.

jc

<!doctype html public "-/W3C//DTDHTML4.0 //EN">
<html>
<head>
<title>Fenetre d'origine</title>
<script language="javascript">
<!--
function valide()
{
document.forms[0].submit();
return true;
}
//-->
</script>
</head>

essai soumission

<form id="fenetre" name="fenetre">
<select id="auteur" name="auteur">
<option value="3">bertrand</option>
<option value="1">jules</option>
<option value="2">charles</option>
<option value="6">gérard</option>
<option value="5">daniel</option>
</select>

</form>

</html>
0