Récupérer la valeur du bouton radio
Résolu/Fermé
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
-
Modifié le 20 déc. 2019 à 17:34
jordane45 Messages postés 38390 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 janvier 2025 - 22 déc. 2019 à 18:02
jordane45 Messages postés 38390 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 janvier 2025 - 22 déc. 2019 à 18:02
A voir également:
- Récupérer valeur bouton radio javascript
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Radio française - Télécharger - Médias et Actualité
- Comment récupérer un compte facebook piraté - Guide
- Telecharger javascript - Télécharger - Langages
6 réponses
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
Ambassadeur
1 559
20 déc. 2019 à 17:32
20 déc. 2019 à 17:32
bonjour, cela se fait en utilisant l'attribut "checked" du bouton. as-tu essayé simplement
echo 'checked';?
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
20 déc. 2019 à 17:40
20 déc. 2019 à 17:40
Bonjour,
Merci pour la réponse.
sur la ligne du lien ?
Merci pour la réponse.
sur la ligne du lien ?
<td><a href="index.php?page=comodmember&id=<?php echo $M['id'];?>&prenom=<?php echo $M['prenom'];?>"><?php echo $M['nom'];?></a></td>
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
1 559
20 déc. 2019 à 18:53
20 déc. 2019 à 18:53
non, je n'avais pas lu les changements que tu as faits dans ta description.
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
Ambassadeur
1 559
20 déc. 2019 à 18:56
20 déc. 2019 à 18:56
pour mémoriser ce genre d'information, je suggère d'utiliser les sessions.
cela se fait en ajoutant
ensuite, tu peux ajouter une ligne
après la ligne 21, celle avec la seconde accolade fermante, ajoute
ensuite, dans les lignes 48 à 50, remplace
cela se fait en ajoutant
session_start();tout au début du code php (la ligne avant
include).
ensuite, tu peux ajouter une ligne
$_SESSION['choix']=$choix;après la ligne 20 (entre les deux lignes avec l'accolade fermante)
après la ligne 21, celle avec la seconde accolade fermante, ajoute
else { if( isset($_SESSION['choix']) ){ $choix=; } }
ensuite, dans les lignes 48 à 50, remplace
$_POST["choix"]par
$choix.
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 731
20 déc. 2019 à 19:07
20 déc. 2019 à 19:07
<?php session_start(); require_once "connect.php"; $sessionChoix = !empty($_SESSION['choix']) ? $_SESSION['choix'] : NULL; //prendre la valeur de session si remplie $choix = !empty($_POST['choix']) ? $_POST['choix'] : $sessionChoix; // prendra la valeur de post si elle est remplie, sinon celle de session $_SESSION['choix'] = $choix; $prenom = !empty($_GET['prenom']) ? $_GET['prenom'] : ""; $id = !empty($_GET['id']) ? $_GET['id'] : ""; $nombre = ''; $message = ''; $nom=''; if (isset($_POST['envoyer']) && $choix){ $strWhere = ""; switch($choix){ case "A": $strWhere = "WHERE nationalite = 'Allemande'"; break; case "F": $strWhere = "WHERE nationalite = 'Française'"; break; default: //aucun choix! break; } $sql = "SELECT COUNT(*) AS nb FROM membres " . $strWhere; try{ $req = $cnx->query($sql); $data = $req->fetch(); $nombre = $data['nb']; }catch(Exception $e){ echo "Erreur : " . $e->getMessage(); } } else { $message = "Merci de choisir un affichage !"; } ?>
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
20 déc. 2019 à 19:42
20 déc. 2019 à 19:42
Bonjour Jordane45,
merci pour la réponse.
il y a un soucis avec session_start(); car je l'ai déjà dans sur la page index.php
certaines pages doivent être réservées aux membres
la session est ignorée sur la page et génère un message d'erreur
merci pour la réponse.
il y a un soucis avec session_start(); car je l'ai déjà dans sur la page index.php
certaines pages doivent être réservées aux membres
<?php session_start(); // déconnexion du site if (isset($_GET['deconnexion'])){ unset($_SESSION['utilisateur']); unset($_SESSION['id_utilisateur']); session_destroy(); }
la session est ignorée sur la page et génère un message d'erreur
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
1 559
>
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
20 déc. 2019 à 20:14
20 déc. 2019 à 20:14
il suffit alors de ne pas ajouter session_start(); dans la page index.php, un seul suffit.
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
>
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
20 déc. 2019 à 20:26
20 déc. 2019 à 20:26
je l'ai enlevé mais ça ne change rien. et pourtant si je fais un $_SESSION['choix']; la valeur est bien récupérée mais le tableau ne s'affiche pas.
Est ce que je n'ai pas un problème de code sur les boutons radios ? ou est ce que je dois tester la valeur de $_SESSION['choix'] ?
Est ce que je n'ai pas un problème de code sur les boutons radios ? ou est ce que je dois tester la valeur de $_SESSION['choix'] ?
<input type="radio" name="choix" Value="T" <?php if(isset($_POST["choix"])) { if ($_POST["choix"] == "T"){ echo 'checked = "checked"';}} ?>style="margin-left:5em;">Tous * <span style="margin-left:2em;"><input type="radio" name="choix" Value="A" <?php if(isset($_POST["choix"])) { if ($_POST["choix"] == "A"){ echo 'checked = "checked"';}} ?>>Allemand.e.s</span> <span style="margin-left:2em;"><input type="radio" name="choix" Value="F" <?php if(isset($_POST["choix"])) { if ($_POST["choix"] == "F"){ echo 'checked = "checked"';}} ?>>Français.e.s</span> <span style="margin-left:2em;"><input type="submit" name="envoyer" Value="Afficher" style="cursor:pointer;"></span>
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 731
>
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
20 déc. 2019 à 20:54
20 déc. 2019 à 20:54
Il faut utiliser la variable $choix
yg_be
Messages postés
23433
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 janvier 2025
1 559
>
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
20 déc. 2019 à 21:29
20 déc. 2019 à 21:29
as-tu testé ma suggestion en #4?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
Modifié le 22 déc. 2019 à 16:30
Modifié le 22 déc. 2019 à 16:30
je reviens sur mon soucis d'affichage.
je ne comprends pas la ligne 4 !!
$sessionchoix n'est jamais appelé dans le code
lorsque je clique sur "envoyer" je récupère bien les valeurs lignes 8 et 9
j'ai changé les lignes 53 et 54 pour voir la réaction : rien ne change!! toujours pas d'affichage de la liste.
j'ai aussi changé la ligne 61. pas de changement
la ligne 50 est elle correcte ?
Merci d'avance
je ne comprends pas la ligne 4 !!
$sessionChoix = !empty($_SESSION['choix']) ? $_SESSION['choix'] : NULL;
$sessionchoix n'est jamais appelé dans le code
lorsque je clique sur "envoyer" je récupère bien les valeurs lignes 8 et 9
j'ai changé les lignes 53 et 54 pour voir la réaction : rien ne change!! toujours pas d'affichage de la liste.
j'ai aussi changé la ligne 61. pas de changement
la ligne 50 est elle correcte ?
<?php require_once "connect.php"; $sessionChoix = !empty($_SESSION['choix']) ? $_SESSION['choix'] : NULL; //prendre la valeur de session si remplie $choix = !empty($_POST['choix']) ? $_POST['choix'] : $sessionChoix; // prendra la valeur de post si elle est remplie, sinon celle de session $_SESSION['choix'] = $choix; echo $_SESSION['choix']; echo $choix; $prenom = !empty($_GET['prenom']) ? $_GET['prenom'] : ""; $id = !empty($_GET['id']) ? $_GET['id'] : ""; $nombre = ''; $message = ''; $nom=''; if (isset($_POST['envoyer']) && $choix){ $strWhere = ""; switch($choix){ case "A": $strWhere = "WHERE nationalite = 'Allemande'"; break; case "F": $strWhere = "WHERE nationalite = 'Française'"; break; default: //aucun choix! break; } $sql = "SELECT COUNT(*) AS nb FROM membres " . $strWhere; try{ $req = $cnx->query($sql); $data = $req->fetch(); $nombre = $data['nb']; }catch(Exception $e){ echo "Erreur : " . $e->getMessage(); } } else { $message = "Merci de choisir un affichage !"; } ?> <link rel="stylesheet" type="text/css" href="css/style_connexion.css" /> <div style="text-align:center;margin-left:auto;margin-right:auto;background-color:#7FDD4C;width:85%;box-shadow:0.7em 0.7em 0.7em #3A9D23;"> <p> <FORM name="research" ACTION = "index.php?page=comodmember" METHOD="POST"> <br />Pour modifier les données d'un membre, cliquez sur son nom<br /> <p style="text-align:left;"> Sélectionner la liste des membres à afficher :<br /> <input type="radio" name="choix" Value="T" <?php if($_SESSION["choix"] == "T"){ echo 'checked = "checked"';} ?>style="margin-left:5em;">Tous * <span style="margin-left:2em;"><input type="radio" name="choix" Value="A" <?php if ($choix == "A"){ echo 'checked = "checked"';} ?>>Allemand.e.s</span> <span style="margin-left:2em;"><input type="radio" name="choix" Value="F" <?php if(isset($_POST["choix"])) { if ($_POST["choix"] == "F"){ echo 'checked = "checked"';}} ?>>Français.e.s</span> <span style="margin-left:2em;"><input type="submit" name="envoyer" Value="Afficher" style="cursor:pointer;"></span> <br/> <span style="font-size:0.8em;"> * Affichage par défaut</span></p> <?php // if ((isset($_POST['envoyer'])) AND (!empty($_POST['choix']))){ if ((isset($_POST['envoyer'])) AND (!empty($_SESSION['choix']))){ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //préparation de la requête et des variables if ($choix == 'A') { $sql = "SELECT * FROM membres WHERE nationalite = 'Allemande' ORDER BY nom, prenom"; } else if ($choix == 'F') { $sql = "SELECT * FROM membres WHERE nationalite = 'Française' ORDER BY nom, prenom"; } else { $sql = "SELECT * FROM membres ORDER BY nom, prenom"; } try { $requete = $cnx->prepare($sql); $requete->execute(); $arr_membres = $requete->fetchAll();// on stocke le resultat de la requete dans un array } catch(Exception $e){ // en cas d'erreur dans la requete: echo " Erreur ! ".$e->getMessage(); } if(!empty($arr_membres)){ // on s'assure que la variable n'est pas vide echo '<table border=1 style="text-align:left;width:100%;">'; echo '<tr style="text-align:center;"><td style="width:15em;">NOM</td><td style="width:8em;">PRENOM</td><td style="width:8em;">TELEPHONE</td><td style="width:20em;">ADRESSE INTERNET</td></TR>'; foreach($arr_membres as $M){ // on boucle dessus à l'aide d'un foreach echo '<tr>'; ?> <td><a href="index.php?page=comodmember&id=<?php echo $M['id'];?>&prenom=<?php echo $M['prenom'];?>"><?php echo $M['nom'];?></a></td> <td><?php echo $M['prenom'];?></td> <td><?php echo $M['telephone'];?></td><td><?php echo $M['mail'];?></td></tr> <?php } echo '</table>'; } } ?> </p> <?php echo $message; echo '<br />'; if (empty($message)){ echo 'Nombre total de membres : '. $nombre .'<br />'; } ?><br /> </FORM> </div>
Merci d'avance
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 731
22 déc. 2019 à 16:37
22 déc. 2019 à 16:37
je ne comprends pas la ligne 4 !!
La Ligne est écrit via l'écriture TERNAIRE
C'est comme une IF
ca revient à écrire :
if(!empty($_SESSION['choix'])){ $sessionChoix = $_SESSION['choix']; }else{ $sessionChoix = NULL; }
$sessionchoix n'est jamais appelé dans le code
Si ! Dans la ligne juste en dessous
$choix = !empty($_POST['choix']) ? $_POST['choix'] : $sessionChoix; // prendra la valeur de post si elle est remplie, sinon celle de session
Par contre... je ne vois pas le démarrage de tes sessions....
Il se trouve dans ton fichier connect.php ?
De plus, tout le code qui se trouve entre tes lignes 60 et 83 sont à supprimer de ton code.... car, si tu regardes bien, c'est déjà traité dans le code que je t'ai donné.
Pour finir,
fais donc des print_r des variable POST et SESSION et montre nous ce que ça donne.
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
>
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
22 déc. 2019 à 17:06
22 déc. 2019 à 17:06
Le démarrage de la session est sur ma page index.php
philip51
Messages postés
49
Date d'inscription
vendredi 6 janvier 2017
Statut
Membre
Dernière intervention
25 février 2020
Modifié le 22 déc. 2019 à 17:20
Modifié le 22 déc. 2019 à 17:20
Bonjour,
j'ai fait un print de $_SESSION['choix'] et je récupère bien la valeur cliquée
si je supprime les lignes 60 à 83 je vais avoir un souci car la requête n'est pas la même. la première sert à compter l'autre sert à afficher.
Les nuits portant conseil j'ai trouvé la solution avec votre aide
j'ai changé la ligne 61
pour
et ça marche comme ça
j'ai fait un print de $_SESSION['choix'] et je récupère bien la valeur cliquée
si je supprime les lignes 60 à 83 je vais avoir un souci car la requête n'est pas la même. la première sert à compter l'autre sert à afficher.
Les nuits portant conseil j'ai trouvé la solution avec votre aide
j'ai changé la ligne 61
if ((isset($_POST['envoyer'])) AND (!empty($_SESSION['choix']))){
pour
if (!empty($_SESSION['choix'])){
et ça marche comme ça
jordane45
Messages postés
38390
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2025
4 731
22 déc. 2019 à 18:02
22 déc. 2019 à 18:02
Il faut les effacer...
et modifier le code que je t'ai donné par ceci
Pourquoi ? .. car on place le maximum de code PHP ... EN DEHORS du code html ( de préférence au début du fichier).
C'est plus simple à maintenir.
Et puis.. ça évite la répétition dans ton code code.
et modifier le code que je t'ai donné par ceci
if (isset($_POST['envoyer']) && $choix){ $strWhere = ""; switch($choix){ case "A": $strWhere = "WHERE nationalite = 'Allemande'"; break; case "F": $strWhere = "WHERE nationalite = 'Française'"; break; default: //aucun choix! break; } // Pour le nombre $sql = "SELECT COUNT(*) AS nb FROM membres " . $strWhere; try{ $req = $cnx->query($sql); $data = $req->fetch(); $nombre = $data['nb']; }catch(Exception $e){ echo "Erreur : " . $e->getMessage(); } // pour les données $sql = "SELECT * nb FROM membres " . $strWhere; try{ $req = $cnx->query($sql); $arr_membres = $req->fetchAll(); }catch(Exception $e){ echo "Erreur : " . $e->getMessage(); }
Pourquoi ? .. car on place le maximum de code PHP ... EN DEHORS du code html ( de préférence au début du fichier).
C'est plus simple à maintenir.
Et puis.. ça évite la répétition dans ton code code.