Changer boutons radios en liste déroulante
Résolu
corentin.bc
Messages postés
385
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Salut à toutes et tous,
sur la page d'options de mon site:
https://www.accessibiliteprogrammes.fr/settings.php
j'ai des boutons radios pour choisir le type de menu à utiliser.
j'aimerais que ce choix ce fasse plutôt via une liste déroulante.
Comment dois-je faire svp?
Merci.
--
Amicalement! Corentin.
sur la page d'options de mon site:
https://www.accessibiliteprogrammes.fr/settings.php
j'ai des boutons radios pour choisir le type de menu à utiliser.
j'aimerais que ce choix ce fasse plutôt via une liste déroulante.
Comment dois-je faire svp?
Merci.
--
Amicalement! Corentin.
3 réponses
-
Bonjour,
En modifiant ton code source .....
(et donc en utilisant, en html, la balise SELECT au lieu des INPUT radio )
Mais là ... sans voir ton code ... impossible de t'aider.
-
Slt,
voici mon code :
<?php $log = ''; if(isset($_GET['act']) and $_GET['act'] == 'form') { if(isset($_POST['menu'])) setcookie('menu', $_POST['menu'], time() + 365*24*3600, null, null, false, true); if(isset($_POST['audio'])) { if($_POST['audio'] == 'on') setcookie('audio', '1', time() + 4*365.25*24*3600, null, null, false, true); else setcookie('audio', '0', time() + 4*365.25*24*3600, null, null, false, true); } else setcookie('audio', '0', time() + 4*365.25*24*3600, null, null, false, true); header('Location: /settings.php?act=ok#log'); } if(isset($_GET['act']) and $_GET['act'] == 'ok') $log = 'ok'; ?> <?php $titre="Paramètres du site"; ?> <!DOCTYPE HTML> <HTML lang="fr"> <HEAD> <?php include "header.php"; ?> </HEAD> <BODY> <div id="container"><div id="header"> <div id="logo"> <img src="images/ORDIVOX.BMP" alt="logo du site"/> </div> </div> <?php include "menu.php"; if((isset($_COOKIE['audio']) and $_COOKIE['audio'] == "1") or !isset($_COOKIE['audio'])) { ?> <audio src="sons/settings.mp3" autoplay></audio> <?php } ?> <div id="body" role="main"> <h1>Préférences</h1> <?php if($log != '') { ?> <p id="log"> <?php if($log == 'ok') print('<strong>Les modification ont bien été prises en comptes.</strong>'); ?> </p> <?php } ?> <p> Ici vous pouvez effectuer quelques réglages.<br /> Les cookies doivent être autorisés pour que celà prenne effet. </p> <form action="?act=form" method="post"> <p>Style du menu:</p> <input type="radio" name="menu" value="ulli" id="lp" <?php if (isset($_COOKIE['menu']) and $_COOKIE['menu'] == "ulli" or !isset($_COOKIE['menu'])) echo 'checked'; ?> /> <label for="lp">Liste à puces (version 1.0, 4.1 et 4.2 du site)</label><br /> <input type="radio" name="menu" value="select" id="ld" <?php if((isset($_COOKIE['menu']) and $_COOKIE['menu'] == "select")) echo 'checked'; ?> /> <label for="ld">Liste déroulante (version 2.0, 3.0 et 4.0 du site)</label><br /> <label for="f_audio">Jouer un son en ouvrant une page du site:</label> <input type="checkbox" id="f_audio" name="audio" <?php if((isset($_COOKIE['audio']) and $_COOKIE['audio'] == "1") or !isset($_COOKIE['audio'])) echo 'checked'; ?> /><br /> <input type="submit" value="Enregistrer" /> </form> <a href="#menusite">retour au menu du site</a> </div></div> <?php include "footer.inc.php";?> </BODY> </HTML>
Amicalement! Corentin.
EDIT : Ajout des balises de code.-
Oui et ?
Donc on est d'accord sur le fait que c'est cette partie :<input type="radio" name="menu" value="ulli" id="lp" <?php if (isset($_COOKIE['menu']) and $_COOKIE['menu'] == "ulli" or !isset($_COOKIE['menu'])) echo 'checked'; ?> /> <label for="lp">Liste à puces (version 1.0, 4.1 et 4.2 du site)</label><br /> <input type="radio" name="menu" value="select" id="ld" <?php if((isset($_COOKIE['menu']) and $_COOKIE['menu'] == "select")) echo 'checked'; ?> /> <label for="ld">Liste déroulante (version 2.0, 3.0 et 4.0 du site)</label><br /> <label for="f_audio">Jouer un son en ouvrant une page du site:</label> <input type="checkbox" id="f_audio" name="audio" <?php if((isset($_COOKIE['audio']) and $_COOKIE['audio'] == "1") or !isset($_COOKIE['audio'])) echo 'checked'; ?> /><br />
Que tu veux transformer en liste déroulante ??
Et donc :<?php //récupération PROPRE des variables AVANT de les utiliser $menu = isset($_COOKIE['menu']) ? $_COOKIE['menu'] : 'ulli'; $audio = isset($_COOKIE['audio']) ? $_COOKIE['audio'] : 1; ?> <!-- Affichage liste déroulante --> <select name="menu"> <option value="ulli" id="lp" <?php if ($menu == "ulli" ) echo "selected='selected'"; ?> > <label for="lp">Liste à puces (version 1.0, 4.1 et 4.2 du site)</label> </option> <option value="select" id="ld" <?php if($menu == "select") echo "selected='selected'"; ?> > <label for="ld">Liste déroulante (version 2.0, 3.0 et 4.0 du site)</label> </option> </select> <!-- Case à cocher --> <label for="f_audio">Jouer un son en ouvrant une page du site:</label> <?php $checked = $audio == "1" ? "checked = 'checked' " : ""; ?> <input type="checkbox" id="f_audio" name="audio" <?php echo $checked; ?> /><br />
-
-
Ça fonctionne merveilleusement bien.
Mais un truc me chagrine :
le W3C me donne les erreurs suivantes que je n'avais pas avant :
1.
Error: Stray start tag label.
From line 58, column 4; to line 58, column 19
ed' > ↩ <label for="lp">Liste
2.
Error: Stray end tag label.
From line 58, column 67; to line 58, column 74
2 du site)</label>↩ </o
3.
Error: Stray start tag label.
From line 61, column 4; to line 61, column 19
d" > ↩ <label for="ld">Liste
4.
Error: Stray end tag label.
From line 61, column 70; to line 61, column 77
0 du site)</label>↩ </o
comment les corriger?
-
Ah oui...
Vires tous les <label... > </label> presents dans les OPTIONS du select.
ne conserve que les textes.
<select name="menu"> <option value="ulli" id="lp" <?php if ($menu == "ulli" ) echo "selected='selected'"; ?> > Liste à puces (version 1.0, 4.1 et 4.2 du site) </option> <option value="select" id="ld" <?php if($menu == "select") echo "selected='selected'"; ?> > Liste déroulante (version 2.0, 3.0 et 4.0 du site) </option> </select>
-