Chekced = true

Répondre
Kurt92
le 03/10/2009 à 00:47
Kurt92
Bonjour,

J'ai une page index en PHP dans laquelle se trouve 4 boutons type radio.

Lorsque je clique sur un des bouton , celui ci appelle par la méthode get une variable pour modifier une variable dans index.php.

Je n'arrive pas à ce que le bouton radio soit checked lorsqu'un des bouton radio est choisi.

Ils restent systématiquement unchecked.

Je ne cherche pas une solution toute faite mais un piste pour essayer de trouver.

Merci d'avance.
LupusMic
le 03/10/2009 à 09:59
LupusMic
Il faut que l'input correspondant au radio button activé ait l'attribut checked.

<input type='radio'
name='option'
<?php if(!empty($_GET['option']) && $_GET['option'] == 1) echo 'checked=\'checked\'' ?>
value='1' />
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Kurt92
le 03/10/2009 à 22:27
Kurt92
Merci bcp mais j'ai du remplacer le $_get['option'] par sa $variable car il me retournais une erreur.
laura
le 03/10/2009 à 22:33
laura
Si t'as une erreur avec $_GET['option'] c'est peut être que tu n'as pas envoyé ton formulaire avec la methode get. Fais un essai avec $_POST['option'].

Il faut regarder "method" dans la balise form pour connaitre la method avec laquelle tu vas envoyer les données.
Des étoiles dans les yeux, le ciel pour m'évader
Kurt92
le 03/10/2009 à 22:42
Kurt92
J'ai bien utiliser la fonction method GET.

Voici mon code.

http://www.lephpfacile.com/wall/wall-1812.php
laura
le 03/10/2009 à 22:51
laura
Je vois le problème.

A mon sens tu devrais plus faire quelque chose comme ceci en haut de ta page index.php

$design =isset($_GET['design']) ? $_GET['design'] : 'style1';


Comme ça ta variable $design est toujours définit.

Attention aussi car ton code n'est absolument pas protégé. Ta varibale est facilement détournable :/

La règle d'or c'est : Ne JAMAIS faire confiance dans les données envoyés par les utilisateurs.
Des étoiles dans les yeux, le ciel pour m'évader
Kurt92
le 03/10/2009 à 23:55
Kurt92
Ah Génial Laura . Merci !!

J'ai cherché comment donner le 'style 1' par defaut car mon index.php ne chargait aucun css par défaut.

Je débute dans le php mais je ne comprend pas bien le code que tu m'as fourni. Pourrais tu m'éclairer ?
laura
le 04/10/2009 à 00:39
laura
C'est juste une contraction d'un if else. Une façon plus rapide de l'écrire.

Tu peux le remplacer comme ceci
<?php
if(isset($_GET['design']))
{
$design=$_GET['design'];
}
else
{
$design='style1';
}
?>


Si j'étais toi j'ajouterais un elseif de plus avec lecture d'un cookie.

<?php
//Liste des designs
$design_list=array('style1','style2','style3','style4');
//design par défaut
$design='style1';

if(isset($_GET['design']))
{
if(in_array($_GET['design'],$design_list))
{
$design=$_GET['design'];
//création d'un cookie avec le nom du design d'une durée d'un an
setcookie('design', $design,time()+31587840);
}
}
else
{
//lecture du cookie design
if(isset($_COOKIE['design']))
{
if(in_array($_COOKIE['design'],$design_list))
{
$design=$_COOKIE['design'];
}
}
}
?>


Bon il ne s'agit que d'une ébauche, une simple piste.
Des étoiles dans les yeux, le ciel pour m'évader
laura
le 04/10/2009 à 00:51
laura
oups petite erreur ligne 14 il faut mettre design à la place de mondesign :)
Des étoiles dans les yeux, le ciel pour m'évader
LupusMic
le 04/10/2009 à 03:28
LupusMic
(laura) C'est corrigé.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre
LoadingChargement en cours