Eviter un passage à la ligne avec les balises <form></form>

Résolu/Fermé
janmar
Messages postés
148
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
29 août 2015
- Modifié par janmar le 24/07/2013 à 10:09
Goelano
Messages postés
5
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014
- 23 oct. 2014 à 21:26
Bonjour,

Je crée en PHP une page qui comprend plusieurs options de réponse, et je me sers pour cela des balises <form> :
<form method = "post" action = "../Admin/adresses.php">
<input type = "submit" value = "mail aux membres " />
<form method = "post" action = "../Admin/mail aux organisateurs.php">
<input class = "align" type = "submit" value = "mail aux organisateurs " />
</form>

Ecrit tel quel, la présentation est comme je le souhaite, les deux champs de saisie étant à la suite l'un de l'autre.

Par contre, le bouton submit n'agit que sur le premier action.

Le script qui marche bien est :
<form method = "post" action = "../Admin/adresses.php">
<input type = "submit" value = "mail aux membres " /></form>
<form method = "post" action = "../Admin/mail aux organisateurs.php">
<input class = "align" type = "submit" value = "mail aux organisateurs " />
</form>

Malheureusement, </form> provoque un saut de ligne.

Quelqu'un a-t-il une idée pour éviter ce saut de ligne.

Merci pour vos suggestions.

3 réponses

js95
Messages postés
769
Date d'inscription
samedi 14 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2014
347
Modifié par js95 le 24/07/2013 à 10:17
C'est une question de CSS. <form> est une balise de type block.
Si tu as une feuille de style attachée à ta page, ajoute dedans:
form {
   display: inline-block;
}

et le tour est joué.
Sinon ajoute l'attribue
style="display: inline-block;"
dans tes balises <form>.
<form style="display: inline-block;" > ... </form>

La précision est le fruit de la réussite.
4
janmar
Messages postés
148
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
29 août 2015
3
26 juil. 2013 à 19:09
Bonjour JS95,

Je pensais en avoir fini avec ces satanées balises, mais ça ne marche toujours pas :

Je souhaite disposer sur une même ligne DEUX input, qui n'ont pas la même action, puis sur la ligne suivante encore deux input.

Lorsque je fais un code comme ceci :

<form method = "post" action = "../Admin/adressesmembres.php" />
	<input type = "submit" value = "mail aux membres" />
	
<form method = "post" action = "../Admin/listedesmembres.php"/>
	<input  type = "submit"  class = "align4" value = "liste membres" />
	<br>
	
<form method = "post" action = "../Admin/adressesbenevoles.php" />
	<input type = "submit" value = "mail aux benevoles" />
	
<form method = "post" action = "../Admin/listebenevoles.php" />
	<input type = "submit"  class = "align4" value = "liste benevoles" />
	</form><br>


la disposition est bonne, mais tous les input font la même action (la première).

Si je fais un code comme celui-là :

<form method = "post" action = "../Admin/adressesmembres.php" >
	<input type = "submit" value = "mail aux membres" />
</form>
	
<form method = "post" action = "../Admin/listedesmembres.php">
	<input  type = "submit"  class = "align4" value = "liste membres" />
</form>
<br>
<form method = "post" action = "../Admin/adressesbenevoles.php" >
	<input type = "submit" value = "mail aux benevoles" />
</form>
	
<form method = "post" action = "../Admin/listebenevoles.php" >
	<input type = "submit"  class = "align4" value = "liste benevoles" />
</form>
<br>


Les input font bien leur travail (chacun leur action), mais j'obtiens systématiquement un retour à la ligne, on dirait même une 1/2 ligne !...

J'ai essayé de mettre mes input entre des balises <p></p>, j'ai bien sûr un saut de ligne supplémentaire.

J'ai essayé les deux solutions préconisées, la première dans le CSS avec form{....}, la seconde directement dans les balises <form> rien à faire

Bien entendu, je n'ai pas de saut de ligne dans le CSS.

La solution radicale serait d'accepter les sauts de ligne, mais ça aurait comme conséquence que je n'aurai pas compris le pourquoi du comment, et en plus, ce serait moche.

Pour la beauté du formulaire, si quelqu'un peut se pencher sur le problème, je l'en remercie d'avance.
0
janmar
Messages postés
148
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
29 août 2015
3
24 juil. 2013 à 11:13
Merci.
C'est tout à fait ça.
0
js95
Messages postés
769
Date d'inscription
samedi 14 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2014
347
14 août 2013 à 17:34
C'est le dernier code que tu as écrit que tu dois utiliser, les <input> doivent être dans le innerHTML de la balise <form>, après si le CSS est correctement lié à la page HTML, il n'y a aucune raison que ça ne fonctionne pas, à moins d'utiliser un très mauvais navigateur internet...
0
janmar
Messages postés
148
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
29 août 2015
3
19 août 2013 à 11:36
merci de ces précisions.
J'ai encore quelques tests à faire, mais cela proviendrait peut-être de ma fenêtre qui n'est pas tout à fait grande.
Je considère la question résolue.
Merci.
0
Goelano
Messages postés
5
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014
21
23 oct. 2014 à 21:26
Merci pour ces conseils ! J'avais le même problème. Voici mon code avant :
<FORM ACTION="toto.php" METHOD=post NAME=toto>
<INPUT etc etc ...>
</FORM>

et j'avais un saut de ligne en fin de formulaire !

Voici mon code maintenant :
<FORM ACTION="toto.php" METHOD=post STYLE="display:inline;" NAME=toto>
<INPUT etc etc ...>
</FORM>

et je n'ai plus de saut de ligne ! Super !
0