PHP-Plusieurs formulaire, un seul "valider"

Résolu/Fermé
Gonzo_09 - 21 mai 2010 à 11:57
 Gonzo_09 - 21 mai 2010 à 15:51
Bonjour à tous,

Je voudrais pouvoir valider plusieurs champs d'upload de fichier grâce à un seul bouton. Au début j'avais fais plusieurs formulaires mais je ne pense pas que ça marche.
Le problème réside dans le fait que certains champs d'upload (les champs "facture") sont créés dans une boucle while et le champ "relève" non. En plus j'avais fais des div différentes pour les champs "facture", "relève" et les boutons.

Comment faire pour que mon bouton "Continuer" me renvoie à la page traitement.php en prenant en compte tous les fichiers?
Dans ma page traitement.php je compte faire un switch selon le name du champ d'upload. Dois-je faire une boucle pour les champs "facture" ou seront-ils tous traités en même temps?


//boucle pemettant d'afficher les formulaires de téléchargement des factures EDF
//pour chaque mois
while($i<$nb_mois)
{
?>

<form method="post" action="traitement.php" enctype="multipart/form-data">
<p>
<label for="mois">
<?php
afficherMois($i);
?>
</label>
<br /><INPUT type=file name="facture" id="mois"><br />
</p>
</form>

<?php
$i++;
}
?>

</div>


<!--bloc contenant le cadre téléchargement rmet-->
<div class="fichierRMET">
Veuillez importer le relevé RMET :
<form method="post" action="traitement.php">
<p>
<input type="file" name="releve">
</p>
</form>
</div>


<!--bloc contenant les boutons "Continuer" et "Retour"-->
<div class="btn_accueil">

<form action="traitement.php">
<p>
<input type="submit" value="Continuer" class="style_btn" /><br />
</p>
</form>

<form action="index.php">
<p>
<input type="submit" value="Retour" class="style_btn" /><br />
</p>
</form>

</div>


Merci d'avance pour votre aide.

4 réponses

lewindowsien
Messages postés
7
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010

21 mai 2010 à 14:54
Tout d'abord bonjour à toi,

le problème c'est que quand tu mets un submit dans un formulaire tu vas valider uniquement le formulaire dans lequel est le dit bouton. Je te conseil de n'utiliser donc dans un premier temps qu'un seul formulaire (bien sûr si tu veux tout faire en même temps) et de ne pas utiliser des boutons submit partout. Le bouton submit est destiné à la Validation du formulaire, dans ton exemple ici ça serait de lancer l'upload. Tu peux utiliser des bouton de types button associer a une action JavaScript pour tes boutons retour et continuer etc.... En espérant t'avoir éclairé :).

Bonne journée à toi.
0
Merci de ta réponse et tu as parfaitement raison.
je cherchais à lier mon bouton "continuer" à mes champs d'uploads alors qu'en fait il fallait que j'intègre ce bouton au formulaire ce que je viens d'arriver à faire :

<form method="post" action="traitement.php" enctype="multipart/form-data">
<p>

<?php
//boucle pemettant d'afficher les formulaires de téléchargement des factures EDF
//pour chaque mois
for($i=0;$i<$nb_mois;$i++)
{
echo'<label for="mois">';
afficherMois($i);
echo'</label>';
echo'<br /><INPUT type=file name="facture'.$i.'" id="mois"><br />';
}
?>
Veuillez importer le relevé RMET :
<input type="file" name="releve">
<input type="submit" value="Envoyer le fichier" />
</p>
</form>

ça marche impeccablement.

Le seul point négatif c'est que mes champs "facture", "releve" et mon bouton "envoyer" n'ont plus de div unique donc la mise en page a changé.
Je vais chercher une solution.
0
lewindowsien
Messages postés
7
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010

21 mai 2010 à 15:36
N'oublie pas de marquer le sujet comme résolu si tel est le cas :).
0
Bon j'ai réussi à obtenir la même mise en page qu'au départ en trichant.
Au niveau c'est pas très joli et IE n'aime pas non plus mais j'ai pas trouvé d'autre solution.
Je met mon code avec le CSS qui va bien pour ceux qui aurait une autre solution.


<form method="post" action="traitement.php" enctype="multipart/form-data">
<p>
<!--bloc contenant le cadre téléchargement fichiers EDF-->
<div class="fichierEDF">
Veuillez importer les factures EDF :<br /><br />
<?php

//boucle pemettant d'afficher les formulaires de téléchargement des factures EDF
//pour chaque mois
for($i=0;$i<$nb_mois;$i++)
{
echo'<label for="mois">';
afficherMois($i);
echo'</label>';
echo'<br /><INPUT type=file name="facture'.$i.'" id="mois"><br />';
echo'<br /';
}
?>
</div>
<div class="fichierRMET">
Veuillez importer le relevé RMET :<br /><br />
<input type="file" name="releve">
</div>
<div class="btn_accueil">
<input type="submit" value="Continuer" class="style_btn" /><br />
</p>
</form>

<form action="index.php">
<p>
<input type="submit" value="Retour" name="btn_retour" class="style_btn" /><br />
</p>
</form>

</div>


CSS :

.corps
{
/*border : solid;*/

width : 585px;
margin-left: auto;
margin-right: auto;
position : relative;
}
.style_btn
{
/*border : solid;*/

width : 130px;
margin : 10px;
padding : 10px;
border-width: 3px;
}


.fichierEDF
{
border : solid;
border-style : ridge;
margin : 10px;
padding : 10px;
width : 250px;
}
.fichierRMET
{
border : solid;
border-style : ridge;
padding : 10px;
width : 250px;
position : absolute;
left : 300px;
top : 10px;
}

.btn_accueil
{
/*border : solid;*/

position : absolute;
left : 370px;
top : 175px;
width:150px;
}




@lewindowsien : je m'en occupe de suite !
0