[php]vérifier un bouton

Fermé
bezourox - 13 juil. 2007 à 09:41
 bezourox - 13 juil. 2007 à 11:30
Bonjour à tous .
Voila j'ai un formulaire avec des boutons .
L'utilisateur à le choix :

<input type="radio" name="r1" value="1">
<input type="radio" name="r1" value="2">
<input type="radio" name="r1" value="3">

Ce bouton est un champs qui doit etre obligatoirement remplis .
Je veux donc tester si la valeur de r1 à été renvoyé ou non .

Ce qu'il faudrait c'est que lorsque on clique sur le submit, si le mec n'as pas choisi un bouton, on ne passe pas a la page suivante et ouverture d'un popup lui indiquant quel champs n'as pas été remplis correctement .


Je précise que je souhaite faire cela en php et non en Javascript .
A voir également:

6 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
13 juil. 2007 à 10:02
bjr a toi
Hélas, pour rester sur la meme page tu va devoir certainement utiliser du javascript, surtout pour avoir un pop-up
Sinon, tu peut contourner la difficulté peut etre en lui mettant une valeur par défaut
Comme cela, meme si l'utilisateur ne rentre rien, une option sera cochée
Mais cela dépend bien sur de ce sur quoi porte ton formulaire...
0
salut .
en fait non je peux pas me permettre d'en check un par défault :s .
Pour l'histoire du popup c'est pas grave je peux faire afficher le message dans une fenetre donc la taille est figée .
Tu pense que ca n'est pas possible en php ?
on m'a parlé de foreach ... c'est quoi exactement ? Cela peut il m'aider ?
0
foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 533
13 juil. 2007 à 10:40
Bonjour,

C'est possible en php mais pour l'ouverture d'une popup, ça ne marchera pas.
Je te suggère donc d'afficher un message sur le formulaire indiquant que le champs n'est pas rempli.

Voici un petit code que tu peux tester :

<?php
if (isset($_POST['verif'])) 
{
$boutton = $_POST['verif'];
if ($boutton != "0")
	{
		echo "Vous devez choisir un boutton";
	}
}
echo "<form name='verification' method='post' action='' >";
echo "<td><input type='hidden' name='verif' value='0' /><input type='radio' name='r1' value='1' /></td>"; 
echo '<br />';
echo "<td><input type='hidden' name='verif' value='0' /><input type='radio' name='r1' value='2' /></td>"; 
echo '<br />';
echo "<td><input type='submit' name='Go' ></td>"; 
echo '</form>';
?>


Ca devrait te mettre sur la voie.

En fait, il te suffit d'utiliser des variables cachées (hidden).
Tu aurais aussi pu tester les valeurs de tes bouttons une par une, du genre :

if ($boutton != "1") or ($boutton != "2") or ($boutton != "3")

mais ça devient vite contraignant si tu as 50 bouttons ;-)

A+
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
13 juil. 2007 à 11:01
Il est vrai que si tu a plusieurs boutons, la solution d'un foreach est plus appropriée
Je ne sais plus la syntaxe exacte d'un foreach en php, mais le principe est simple
en gros c'est
foreach variable in ensemble
actions

en fait le foreach va parcourir 'ensemble' et chaque élément de 'ensemble' va etre affecté à 'variable'
ensuite les actions vont être effectué, donc si tu veu tester tous tes controles tu peut mettre un test sur 'variable' dans 'actions'
pour la syntaxe précise, fo aller voir la doc. Moi sa fait lontemps que je ne fait plus de php fodrait que je m'y remette un jour quand meme ;-)
0

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

Posez votre question
foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 533
13 juil. 2007 à 11:05
Si tu utilises les variables cachées, je ne pense pas qu'il soit util de passer par une boucle étant donné que c'est des bouttons "radio".

Donc la variable cachée portera toujours le même nom et la même valeur.

Il suffit que la valeur corresponde et le tour est joué.
0
oki merci a vous .
par contre foubar je suis pas sur que ta solution puisse fonctionner .
en effet devant chaque input tu met un input en hidden .
mais je pense que ca ne marche pas parce que ton $boutton = $_POST['verif']; va toujours récup "0" meme si aucun input n'est validé ...
0