IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Valider les boutons radio


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<script language=\"javascript\">alert(\"Vous devez faire un choix pour voter.\");";
    Comment puis-je faire ?

    D'avance merci pour vos réponses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Il faut que tu vérifies avec un évènement onclick Javascript sur le bouton qu'au moins une case est cochée.
    Linio

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    merci pour ta réponse.
    le pb c'est que je sais pas comment faire

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  4. #4
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Salut,

    ta vérification en javascript a l'air bonne, à quel moment tu as un souci ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    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.

  6. #6
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    Salut,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>";
    ?>

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ben, ils y sont ! non ?

  8. #8
    Membre averti Avatar de makmaoui
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 283
    Points : 368
    Points
    368
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
     
    echo "<script>';
    
    echo "alert('instruction1')  ====> ; <==== " ;
    
    </script>

  9. #9
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Ce genre d'erreur normalement peuvent être récupérée par un débuger...
    Linio

  10. #10
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Bah à la limite tu fais ceci ce qui rendra ton programme plus clair...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="form1" action="valid.php" method="POST" onSubmit="return testradio()">

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/09/2006, 12h00
  2. Javascript et les boutons radio
    Par kagura dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2006, 14h24
  3. Probleme avec les boutons radio
    Par aproust dans le forum Linux
    Réponses: 3
    Dernier message: 11/05/2006, 08h05
  4. Prob avec les boutons radio
    Par King_T dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2006, 00h44
  5. les boutons radios?
    Par quaresma dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/08/2005, 09h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo