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 :

Récupérer la valeur d'un bouton radio cliqué


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut Récupérer la valeur d'un bouton radio cliqué
    Bonjour,

    Sur une page j'ai 3 boutons radio "Tous", "Allemand" et "Français" qui me servent à sélectionner dans la bdd l'affichage à faire en fonction du bouton radio sélectionné. Cette partie fonctionne correctement.
    Dans le tableau affiché en cliquant sur un nom je récupère l'id et le prénom. Cette partie fonctionne aussi correctement.
    Mon soucis est que lorsque la page se recharge le bouton qui avait été sélectionné ne l'ai plus et le tableau n'est donc plus affiché.
    je voudrais donc que le bouton qui avait été sélectionné le soit encore et que le tableau s'affiche.
    ci-dessous tout le code de ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    <?php
    include("connect.php");
    $nom = '';
    $prenom = isset($_GET['prenom']) ? $_GET['prenom'] : "";
    $id = isset($_GET['id']) ? $_GET['id'] : "";
    $nombre = '';
    $message = '';
    if (isset($_POST['choix'])){
    	if ($_POST['choix'] == 'A'){
    		$choix = 'A';
    	}
    	else if ($_POST['choix'] == 'F'){
    		$choix = 'F';
    	}
    	else if ($_POST['choix'] == 'T'){
    		$choix = 'T';
    	}
    	else {
    		$choix = 'T';
    	}	
    }
     
    if ((isset($_POST['envoyer'])) AND (!empty($_POST['choix']))){
    	if ($choix == 'A'){
    		$req = $cnx->query("SELECT COUNT(*) AS nb FROM membres WHERE nationalite = 'Allemande'");
    	}
    	else if ($choix == 'F') { 
    		$req = $cnx->query("SELECT COUNT(*) AS nb FROM membres WHERE nationalite = 'Française'");
    	}
    	else { 
    		$req = $cnx->query("SELECT COUNT(*) AS nb FROM membres ");
    	}		
    	$req->execute();       
    	$data = $req->fetch(); 
    	$nombre = $data['nb'];
    }
    else {
    	$message = "Merci de choisir un affichage !";
    }
    ?>
     
     
    <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;">&nbsp;&nbsp; Sélectionner la liste des membres à afficher :<br />
    						       <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>
    			<br/>
    			<span style="font-size:0.8em;">&nbsp;&nbsp;* Affichage par défaut</span></p>
    		<?php 
    		if ((isset($_POST['envoyer'])) AND (!empty($_POST['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&amp;id=<?php echo $M['id'];?>&amp;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>
    <?php
    if (!empty($id)){
    	echo '<div style="">';
    	echo $id .' '.$prenom;
    }
    echo '</div>';
    ?>
    je joins les copies d'écran
    note : le CSS sera placé dans le fichier CSS

    Merci d'avance
    Images attachées Images attachées    

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 456
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 456
    Points : 15 835
    Points
    15 835
    Par défaut
    ce que vous pouvez changer c'est la méthode d'envoi du formulaire et mettre "GET".

    à partir de là, vous aurez les URL index.php?page=comodmember&choix=F et index.php?page=comodmember&choix=A qui affichent les résultats.
    et vous aurez toujours l'URL index.php?page=comodmember qui n'affiche pas le tableau.

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci pour votre réponse.
    Avant de me lancer dans les modifications pouvez-vous me confirmer que :
    - je dois modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="choix" Value="T" <?php if(isset($_POST["choix"])) { if ($_POST["choix"] == "T"){ echo 'checked = "checked"';}} ?>style="margin-left:5em;">Tous *
    en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="choix" Value="T" <?php if(isset($_GET["choix"])) { if ($_GET["choix"] == "T"){ echo 'checked = "checked"';}} ?>style="margin-left:5em;">Tous *
    et d'une façon générale tous les $_POST['xxxx'] en $_GET['xxxx'],
    et mon formulaire devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if ($_GET['choix']=='A' {
    <FORM name="research" ACTION = "index.php?page=comodmember&amp;choix='A'" METHOD="GET">';
    }
    else if ($_GET['choix']=='F' {
    <FORM name="research" ACTION = "index.php?page=comodmember&amp;choix='F'" METHOD="GET">';
    }
    else {
    <FORM name="research" ACTION = "index.php?page=comodmember&amp;choix='T'" METHOD="GET">';
    }
    merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oublie le GET...
    Pour conserver une données (même si on recharge ou change de page), il suffit la mettre dans une variable de SESSION.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if( empty(session_id()) ){ session_start(); }
    // choix
    if( empty($_SESSION['choix']) ){ $_SESSION['choix'] = 'T'; } // choix par défaut
    if( isset($_POST['choix']) ){ $_SESSION['choix'] = $_POST['choix']; }
    $choix = $_SESSION['choix'];
    On remplace alors PARTOUT dans le reste du code : $_POST['choix'] par $_SESSION['choix'] (ou $choix).

    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="radio" name="choix" value="T" <?php if ($_SESSION["choix"] == "T"){ echo 'checked = "checked"'; } ?>style="margin-left:5em;">Tous *
    <input type="radio" name="choix" value="A" <?php if ($_SESSION["choix"] == "A"){ echo 'checked = "checked"'; } ?>style="margin-left:5em;">Allemand.e.s
    <input type="radio" name="choix" value="F" <?php if ($_SESSION["choix"] == "F"){ echo 'checked = "checked"'; } ?>style="margin-left:5em;">Français.e.s

    N.B. Avis perso : quelle ineptie cette "écriture inclusive" !!
    Dernière modification par Invité ; 21/12/2019 à 12h58.

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Bonjour,

    Merci pour la réponse.
    Après avoir changé les boutons radio avec $_SESSION['choix'] comme proposé j'avais encore un soucis.
    Après recherches je me suis aperçu que j'avais un souci à la ligne 56 car le bouton "envoyer" est déjà testé à la ligne 24.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ((isset($_POST['envoyer'])) AND (!empty($_POST['choix']))){
    j'ai donc remplacé ce code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_SESSION['choix'])){
    et j'obtiens bien le résultat recherché. Affichage du tableau après le clic sur un nom et l'id et le nom sous le tableau.
    Il me reste à traiter les modifications concernant la sélection.

    Merci encore

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

Discussions similaires

  1. récupérer la valeur d'un bouton radio
    Par WhiteTigerZ dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2008, 15h51
  2. récupérer la valeur d'un bouton radio en javascript
    Par franfr57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/05/2007, 21h28
  3. Comment récupérer la valeur d'un bouton radio ?
    Par langar dans le forum Struts 1
    Réponses: 4
    Dernier message: 24/05/2007, 23h06
  4. Réponses: 11
    Dernier message: 27/03/2006, 10h25
  5. Comment récupérer la valeur d'un bouton radio ?
    Par whbh dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 23h32

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