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 :

case à cocher checked ou non checked


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut case à cocher checked ou non checked
    Bonsoir à tous,

    Voila mon problème,


    J'ai un champ dans ma base de données qui s'appelle CHE_A_VENDRE, je souhaiterais que si ce champ contient un qu'il affiche une case à cocher qui est cochée et que si il est égal à zéro que ca affiche la case à cocher sans coche.

    Voila le code que j'ai essayé de faire mais ca ne marche pas du tout....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php echo '<input name="vendre" type="checkbox" value="vendre"'. if ($value['CHE_A_VENDRE'] == 1) echo 'checked'; echo '>';
    	?>
    D'avance merci pour l'aide

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Salut,

    Pour qu'une case à cocher soit cochée, il faut l'attribut checked="checked"
    Ca donnerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo '<input name="vendre" type="checkbox" value="vendre"'. if ($value['CHE_A_VENDRE'] == 1) echo 'checked="checked"'; echo '>';
    ?>
    On peut même rendre le code plus lisible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $checked = $value['CHE_A_VENDRE'] ? 'checked="checked" : '';
    echo '<input name="vendre" type="checkbox" value="vendre" ' . $checked .'>';
    ?>
    EDIT > A y regarder de plus près, je ne suis même pas sur que la syntaxe du premier code soit correcte... La seconde, par contre, l'est

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    Je pense que je dois avoir fait une errreur dans le code et je ne vois pas du tout ou elle se trouve

    Voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/httpd/vhosts/ackermann-cie.ch/httpdocs/joomla/fichierphp/chevauxmodifier.php on line 189
    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $checked = $value['CHE_A_VENDRE'] ? 'checked="checked" : '';
    echo '<input name="vendre" type="checkbox" value="vendre" ' . $checked .'>';
    ?>

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Non, l'erreur vient de moi, j'ai zappé un '
    Le code corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $checked = $value['CHE_A_VENDRE'] ? 'checked="checked"' : '';
    echo '<input name="vendre" type="checkbox" value="vendre" ' . $checked .'>';
    ?>

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    y manque encore quelque chose parce que j'ai encore une erreur et je n'arrive pas à fermer correctement la balise php

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Quelle erreur ?
    Parce que je viens d'essayer ce code, et j'ai bien une case à cocher cochée si je mets $calue['CHE_A_VENDRE'] = 1, et une case à cocher non cochée sir je mets 0...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Par défaut
    Tu pourais remplacer les ' par des " pour l'extérieur et inversement.
    Les ' protèges les string du php et pas les " donc au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $checked = $value['CHE_A_VENDRE'] ? 'checked="checked"' : '';
    echo '<input name="vendre" type="checkbox" value="vendre" ' . $checked .'>';
    ?>
    Tu pourrais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $checked = $value['CHE_A_VENDRE'] ? "checked='checked'": "";
    echo "<input name='vendre' type='checkbox' value='vendre'  $checked />";
    Ca peut éviter des erreurs de concaténation bien frustrantes.

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Ahah... L'utilisation des guillemets simple ou doubles a été judicieusement étudiée...

    Les guillemets simples ' délimitent une chaine de caractère qui NE SERA PAS interprétée par php. Au contraire, les guillemets doubles " délimitent une chaine QUI SERA interprétée par php.
    Dans le premier cas, on gagne en performance, tandis que dans le second, on ne gagne même pas en lisibilité. En gros, si tu trouves que c'est plus pénible de concaténer avec des . et des ' , php trouve que c'est moins lent... Si tu en mets toute une tripotée dans tes scripts, ça peut se ressentir sur les performances (c'est pas grand chose, mais c'est toujours ça).
    Autant garder les guillemets doubles pour les cas où c'est absolument nécessaire et qu'on ne peut pas faire autrement, comme pour les retour à la ligne \n par exemple.

    Par ailleurs, en HTML (et a fortiori encore plus en XHTML), les guillemets simple sont tout à fait proscrits. Les attributs des balises doivent IMPERATIVEMENT (conformément aux standards du W3C) être entourés de guillemets doubles " . Autrement, c'est MAL.

    En conclusion, je préfère utiliser des guillemets simplets, quitte à m'arracher quelques touffes de cheveux lors des concaténations. Après tout, si la concaténation pose tant de problèmes, c'est que mon code n'est pas assez clair... Je fais alors en sorte que ce ne soit pas le cas.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    je remercie tout le monde pour l'aide, ca marche bien....

    Encore merci
    et bonne journée

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

Discussions similaires

  1. [PHP 5.2] Gestion de cases à cocher[][] grisées ou non
    Par LadyArwen dans le forum Langage
    Réponses: 7
    Dernier message: 28/05/2010, 11h46
  2. Réponses: 3
    Dernier message: 09/01/2007, 09h37
  3. [MySQL] Mise à jour mysql avec une checkbox non checké
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/08/2006, 16h45
  4. Cases à cocher : liées à un champs non boolean
    Par Tententai dans le forum Access
    Réponses: 4
    Dernier message: 08/08/2006, 17h21
  5. Case a cocher visible ou non suivant menu deroulant
    Par schwinny dans le forum Access
    Réponses: 11
    Dernier message: 28/07/2006, 08h55

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