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 :

CheckBox qui agit sur une même page


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut CheckBox qui agit sur une même page
    Salut,

    Je suis "nouveau" dans le langage php et j'essaye de me lancer dans une checkbox et la valeur qu'elle renvoie.

    Pour expliquer, j'ai une page "maPage.php" avec une checkbox et un bouton a coté. Lorsque je clique sur le bouton, je retourne a "maPage.php" et je donne en paramètre la valeur de la checkbox.

    Donc au début de ma page j'ai un $_GET['...'] pour récupérer ce paramètre.
    Seulement voila, si la checkbox est cochée, je reçois bien un paramètre donc tout va bien.
    Si ce n'est pas coché, je ne reçois rien et donc inévitablement un message d'erreur sous forme de notice :
    Notice: Undefined index: option in C:\weblocal\maPage.php on line 73
    Ma question c'est comment je peux envoyer deux valeurs distinctes a maPage.php selon que la checkbox est cochée ou non. Ou comment testé sans message d'erreur que la checkbox est cochée ou pas !? je suis un peu perdu.

    Merci d'avance pour votre aide.
    Voici le code :

    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
     
    echo "<form action=\"maPage.php\">";
    echo "<td align=\"center\">\n";
    if($_GET['option']=="0")
    {
    	echo "<input type=\"checkbox\" name=\"option\" value=\"value\">Toutes demandes\n";
    }
    else
    {
    	echo "<input type=\"checkbox\" name=\"option\" value=\"value\" checked=\"on\">Toutes demandes\n";
    }
    	echo "</td>";
    	echo "<td><input type=\"submit\" value=\"Rafraîchir\"></td>";
    	echo "</tr>";
    	echo "</div>";
    	echo "</form>";
    Donc j'affiche ma checkbox dans un formulaire et selon la valeur de la checkbox avant (puisque je reviens sur la même page) , je la mets a checked ou non. Mais bon là j'ai tout le temps l'erreur et donc elle se mets tout le temps checkée.

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    la balise FORM demande un attribut method, exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="mapage.php">
    ou encore
    <form method="get" action="mapage.php">
    c'est cet attribut qui te permettra d'être certain de récupérer la valeur soit en $_GET soit en $_POST


    Pour ce qui est de ton erreur c'est bien simple : quand tu arrives sur la page d'affichage de ton formulaire, aucune de tes variables n'existent ! Il te retourne donc le message d'erreur. Il s'agit d'un message NOTICE donc pas très important et en général jamais affiché online... nénamoins, si tu souhaite qu'il n'apparraisse plus il faut tester l'existance des variables AVANT de tester leur valeur...
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // au lieu de if ($_GET['option'] == 0)
    // on aura :
    if (!isset($_GET['option']) || $_GET['option'] == 0)) // Signifie : si $_GET['option'] n'est pas défini OU qu'il est égal à 0 alors, on entre dans la condition

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_GET['option'])) {
    // case cochée
    echo $_GET['option'];
    else {
    // case non cochée
    }

  4. #4
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Merci bien

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

Discussions similaires

  1. Cochez un checkbox qui est sur une autre page
    Par fabien14 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/09/2009, 12h27
  2. [MySQL] Connexions à 2 bases de données sur une même page
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 08/02/2006, 09h38
  3. 2 menus sur une même page
    Par pihug12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/12/2005, 18h15
  4. [PHP-JS] Envoi de données sur une même page...
    Par dudux dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2005, 13h51
  5. lien sur une même page asp
    Par Redouane dans le forum ASP
    Réponses: 4
    Dernier message: 10/03/2004, 15h53

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