Changer boutons radios en liste déroulante

[Résolu/Fermé]
Signaler
Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
-
Messages postés
33648
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2021
-
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.

3 réponses

Messages postés
33648
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2021
3 755
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.


Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
8
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.
Messages postés
33648
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2021
3 755
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 />

Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
8
Ç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?
Messages postés
33648
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2021
3 755
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>