Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2007, 15h31   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
Par défaut [PHP-JS] Valider les boutons radio

Bonjour,

Dans le code ci-après, je souhaiterais valider les boutons radio pour obliger l'utilisateur à cocher un bouton.

Je ne souhaite pas pré-cocher un bouton, et j'aimerais qu'il y ait une alerte javascript :
Code :
echo"<script language=\"javascript\">alert(\"Vous devez faire un choix pour voter.\");";
Comment puis-je faire ?

D'avance merci pour vos réponses.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
// Vérifier la provenance - Initialisation du referer
if( !isset( $_SERVER['HTTP_REFERER'] ) ) {
    $_SERVER['HTTP_REFERER'] = "" ; 
}
// Remplissage du tableau d'url authorisée
$a_allowed_url[] = "http://www.rabiet.fr/vote/index.php";
$a_allowed_url[] = "http://www.rabiet.fr/vote/result.php";
$a_allowed_url[] = "http://www.rabiet.fr/vote/";
 
// Si le referer n'est aucune des pages autorisées
if ( !in_array($_SERVER['HTTP_REFERER'], $a_allowed_url) )
{
    // Redirection
    header("Location:http://www.rabiet.fr");
	exit;
} 
 
$Identifiant = isset($_POST['Identifiant']) ? $_POST['Identifiant'] : '';
$vote_choix = isset($_POST['vote_choix']) ? $_POST['vote_choix'] : '';
 
if ($Identifiant == "")
	//controle Identifiant non vide
if (empty($Identifiant))
{
echo"<script language=\"javascript\">alert(\"Vous devez saisir votre code pour accèder au vote!\");";
echo"window.history.go(-1);</script>";
}
{
	// Connexion à la BD
	include("_conn.php");
$result = mysql_query("SELECT vote_flag,vote_key FROM vote_emargement WHERE vote_key = '". addslashes($_POST["Identifiant"]) ."'");
$count = mysql_num_rows($result); 
 
// Si l'utilisateur n'est pas trouvé dans la base de données
if($count <= 0)
{
	// Redirection vers la page index.php
	header("location: index.php");
	exit;
}
// Vérifie que l'identifiant n'a pas déjà voté 
else{
$row = mysql_fetch_assoc($result);
$vote_flag = $row['vote_flag'];
 
   if($vote_flag == 1)   // Si vote_flag n'est pas de type int ajouter des ' autour de la valeur
   {
   echo"<script language=\"javascript\">alert(\"Vous avez déjà voté. Vous ne pouvez plus accèder au vote.\");";
   echo"window.history.go(-1);</script>";
   } 
} 
 
}
 
// Les options du formulaire
$options = array(
    'Option 1',
    'Option 2',
    'Option 3'
);
 
echo "<p align='center'>Identifiant : <b>".$Identifiant."</b> vérifié</p><br />";
echo "<p align='center'>Choisissez une option : ".$vote_choix."</p><br />";
 
?>
 
<center>
 <form name="form1" action="valid.php" method="POST">
    <?php
    foreach ($options as $v) {
        if ($v == $vote_choix) {
            echo '<input type="radio" name="vote_choix" value="' . $v . '" checked/>' . $v . '<br/>';
        } else {
            echo '<input type="radio" name="vote_choix" value="' . $v . '"/>' . $v . '<br/>';
        }
    }
   ?>
 
	<input type="hidden" name="Identifiant" 
      value="<? echo $Identifiant; ?>">
	<p>&nbsp;</p>
	<input type="submit" value="Voter" onSubmit="return test(this.vote_choix)" >
</form>
</center>
rabiet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h38   #2
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Il faut que tu vérifies avec un évènement onclick Javascript sur le bouton qu'au moins une case est cochée.
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 16h15   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
merci pour ta réponse.
le pb c'est que je sais pas comment faire

j'ai essayé ça , mais ça marche pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
echo"<script language='JavaScript'><!--";
echo"   function test(champ) {";
echo"      if(champ[0].checked || champ[1].checked || champ[2].checked)";
echo"        return true";
echo"      alert('Vous devez choisir une option pour voter !')";
echo"      return false";
echo"   }";
echo"//--></script>";
 
// Vérifier la provenance - Initialisation du referer
if( !isset( $_SERVER['HTTP_REFERER'] ) ) {
    $_SERVER['HTTP_REFERER'] = "" ; 
}
// Remplissage du tableau d'url authorisée
$a_allowed_url[] = "http://www.rabiet.fr/vote/index.php";
$a_allowed_url[] = "http://www.rabiet.fr/vote/result.php";
$a_allowed_url[] = "http://www.rabiet.fr/vote/";
 
// Si le referer n'est aucune des pages autorisées
if ( !in_array($_SERVER['HTTP_REFERER'], $a_allowed_url) )
{
    // Redirection
    header("Location:http://www.rabiet.fr");
	exit;
} 
 
$Identifiant = isset($_POST['Identifiant']) ? $_POST['Identifiant'] : '';
$vote_choix = isset($_POST['vote_choix']) ? $_POST['vote_choix'] : '';
 
if ($Identifiant == "")
	//controle Identifiant non vide
if (empty($Identifiant))
{
echo"<script language=\"javascript\">alert(\"Vous devez saisir votre code pour accèder au vote!\");";
echo"window.history.go(-1);</script>";
}
{
	// Connexion à la BD
	include("_conn.php");
$result = mysql_query("SELECT vote_flag,vote_key FROM vote_emargement WHERE vote_key = '". addslashes($_POST["Identifiant"]) ."'");
$count = mysql_num_rows($result); 
 
// Si l'utilisateur n'est pas trouvé dans la base de données
if($count <= 0)
{
	// Redirection vers la page index.php
	header("location: index.php");
	exit;
}
// Vérifie que l'identifiant n'a pas déjà voté 
else{
$row = mysql_fetch_assoc($result);
$vote_flag = $row['vote_flag'];
 
   if($vote_flag == 1)   // Si vote_flag n'est pas de type int ajouter des ' autour de la valeur
   {
   echo"<script language=\"javascript\">alert(\"Vous avez déjà voté. Vous ne pouvez plus accèder au vote.\");";
   echo"window.history.go(-1);</script>";
   } 
} 
 
}
 
// Les options du formulaire
$options = array(
    'Option 1',
    'Option 2',
    'Option 3'
);
 
echo "<p align='center'>Identifiant : <b>".$Identifiant."</b> vérifié</p><br />";
echo "<p align='center'>Choisissez une option : ".$vote_choix."</p><br />";
 
?>
 
<center>
 <form name="form1" action="valid.php" method="POST" onSubmit="return test(this.vote_choix)">
    <?php
    foreach ($options as $v) {
        if ($v == $vote_choix) {
            echo '<input type="radio" name="vote_choix" value="' . $v . '" checked/>' . $v . '<br/>';
        } else {
            echo '<input type="radio" name="vote_choix" value="' . $v . '"/>' . $v . '<br/>';
        }
    }
   ?>
 
	<input type="hidden" name="Identifiant" 
      value="<? echo $Identifiant; ?>">
	<p>&nbsp;</p>
	<input type="submit" value="Voter" >
</form>
</center>
rabiet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 23h06   #4
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

ta vérification en javascript a l'air bonne, à quel moment tu as un souci ?
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 23h21   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
et oui ! elle a l'air bonne, ... mais elle ne l'est pas

même si aucune case n'est cochée, le javascript n'est pas activé par le onSumit

et j'y comprends rien ! j'ai fais ça 100 fois en html et javascript... en php ça marche pas, et j'ai passé l'aprem là-dessus

si qqn me trouve le pb, je lui envoie un bouteille de champ ! réel.
rabiet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2007, 11h25   #6
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

dans ton code javascript ajoutes des points virgules à la fin de tes instructions :

Code :
1
2
3
4
5
6
7
8
9
10
<?php
echo"<script language='JavaScript'>";
echo"   function test(champ) {  alert('ok'); ";
echo"      if(champ[0].checked || champ[1].checked || champ[2].checked)";
echo"        return true;";
echo"      alert('Vous devez choisir une option pour voter !');";
echo"      return false;";
echo"   }";
echo"</script>";
?>
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2007, 11h37   #7
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
Ben, ils y sont ! non ?
rabiet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2007, 12h00   #8
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Non ils y sont pas (dans le post précedent c'est moi qui les ai ajouté) et comme ton code javascript est sur une ligne tu es obligé d'ajouter des points virgules, je pense que tu parles des points virgules pour tes instructions php, regarde dans la source de ta page et tu comprendras :

Code :
1
2
3
4
5
6
7
8
 
<?php
 
echo "<script>';
 
echo "alert('instruction1')  ====> ; <==== " ;
 
</script>
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2007, 09h00   #9
Membre éclairé
 
Avatar de Linio
 
Inscription : octobre 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 427
Points : 304
Points : 304
Ce genre d'erreur normalement peuvent être récupérée par un débuger...
__________________
Linio
Linio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h49   #10
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
Bah à la limite tu fais ceci ce qui rendra ton programme plus clair...

Code :
1
2
3
4
5
6
7
8
9
10
<script language='JavaScript'>
function testeradio(){
alert('ok');
if((document.nom_fromulaire.champ[0].checked==true)|| (document.nom_fromulaire.champ[1].checked==true) ||(document.nom_fromulaire.champ[2].checked==true)){
      return true;}
     else{
       alert('Vous devez choisir une option pour voter !');
     return false;
   }
</script>
Et dans ton formulaire:

Code :
<form name="form1" action="valid.php" method="POST" onSubmit="return testradio()">
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web