[php]vérifier un bouton

bezourox -  
 bezourox -
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 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
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
bezourox
 
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   Statut Contributeur Dernière intervention   533
 
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 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
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   Statut Contributeur Dernière intervention   533
 
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
bezourox
 
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