Garder la valeur des champs du formulaire ...

Zéphirynx
Invité n'ayant pas de compte PHPfrance

28 juil. 2007, 13:55

Bonjour,

en fait, j'ai une autre question pour ce sujet : dans mon formulaire, j'ai également un autre formulaire pour l'upload de fichiers. Quand le fichier est uploadé, je n'arrive plus à avoir accès aux valeurs des champs de mon formulaire car j'ai dû inclure le formulaire de l'upload dans celui de la page globale.

Dois-je, dans ce cas-là, utiliser les variables session pour continuer à avoir accès au contenu des champs de mon formulaire.

Merci d'avance

Thierry

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 juil. 2007, 15:47

Pas tout compris à la question.

Si tu as deux formulaire dans une page et que tu soumets l'un des deux, les données de l'autre sont perdues à moins effectivement de les avoir conservé par ailleurs (session, cookie, base). Sinon tu peux ne faire qu'un seul formulaire contenant toutes les données et ainsi tout envoyer en même temps, traiter uniquement l'upload et réafficher simplement les autres valeurs.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Zéphirynx
Invité n'ayant pas de compte PHPfrance

28 juil. 2007, 16:04

Bonjour Ryle,

je tiens à te remercier pour ta réponse à mon message.

Si tu veux, j'ai un formulaire avec une liste déroulante comprenant différents produits. Quand l'utilisateur sélectionne un produit, le formulaire est soumis et un tableau avec les différentes caractéristiques du produit à remplir est créé avec un formulaire "Upload" en dessous du tableau.

De cette façon, ça permet à l'utilisateur de pouvoir insérer des photos en rapport avec ce produit. Le problème, c'est que j'ai donc, dans ce cas-ci, 2 formulaires dans la même page.

J'espère que tu comprends déjà mieux ce que je veux faire ?

As-tu une solution pour résoudre ce problème (variables session, ...) ?

Merci d'avance

Thierry

Mammouth du PHP | 19672 Messages

28 juil. 2007, 16:06

Non, envisage le JavaScript. À partir d'un formulaire, alimente des champs cachés de l'autre formulaire et là tu récupèreras tout en soumettant le second formulaire. Ça peut être valable dans l'autre sens bien entendu.

Ce que tu ne peux pas faire, c'est imbriquer les formulaires l'un dans l'autre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

28 juil. 2007, 16:14

Bonjour Cyrano,

je tiens à te remercier pour ta réponse rapide à mon message.

Penses-tu que ce que je veux faire est réalisable ? Comme on dit, nul n'est tenu à l'impossible mais ce n'est pas évident à développer.

Par hasard, pourrais-tu me dire où je pourrais trouver de l'information pour ce genre de choses à faire ?

Par hasard, n'as-tu pas un example avec un upload faisant partie d'un autre formulaire ?

Merci d'avance pour ton aide

Thierry

Mammouth du PHP | 19672 Messages

28 juil. 2007, 16:46

Qu'est-ce qui t'empêche d'avoir un formulaire unique ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

28 juil. 2007, 17:00

Bonjour Cyrano,

avant de lire ton message à ma question, j'avais essayé de faire un test en mettant " enctype='multipart/form-data' " dans mon formulaire principal et en supprimant le formulaire d'upload généré dynamiquement quand le client sélectionne un produit. J'ai juste laissé les 2 champs avec le nom du fichier à transférer et le bouton submit upload.

Et à ma plus grande surprise, tout a l'air de fonctionner. Par contre, je ne comprends pas comment j'ai encore le bouton "Browse..." alors que j'ai enlevé le formulaire upload.

Voici mon code :


<form name="frmState" method="post" action="CleverFormWithPhotos.php" onSubmit="return ValidateForm();" enctype="multipart/form-data">

...
...

   $strDynamicProduct = "";
   $strDynamicProduct .= "        <input type='file' name='fichier_upload' id='fichier_upload' size='100'>";
   $strDynamicProduct .= "        &nbsp;";
   $strDynamicProduct .= "        <input type='submit' name='upload' value='Upload File'>";

   echo $strDynamicProduct 

</form>


Je te tiens au courant de la suite de mes tests.

Merci d'avance

Thierry

Petit nouveau ! | 8 Messages

28 juil. 2007, 19:17

Bonjour à tous,

concernant ce problème, puis-je avoir un bouton "upload" par produit pour transférer les fichiers sur le serveurs ? En fait, quand l'utilisateur sélectionne un produit, je crée automatiquement un champ input pour le nom de fichier et un bouton upload. De cette façon, l'utilisateur sait visualiser les photos en dessous du tableau lui correspondant. C'est plus clair pour l'utilisateur. Il voit les photos qui se rapportent au produit en question.

Merci d'avance

Thierry