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

PHP & Base de données Discussion :

Gardez en mémoire la valeur d'un select


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Gardez en mémoire la valeur d'un select
    Bonjour,
    j'ai un formulaire qui envoie des données à une base.
    Quand je veux l'UPDATER, je ne parviens pas é récupérer la valeur d'une liste de sélection qui avait été donnée en INSERT.

    Voici un code qui ne fonctionne malheureusement pas !
    Je ne sais pas si il faut ajouter dans la requête un identifiant !?

    Help !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    			<select name="categorie_partenaire" value="<?php echo $categorie; ?>" id="categorie_partenaire">
    			<option value=''> sélectionnez une catégorie </option>
    		<?php
    		$requete = "SELECT DISTINCT nom_categorie FROM categorie ORDER BY nom_categorie";
    		$resultat = @mysql_query($requete);
    		while ($ligne = @mysql_fetch_array($resultat)) {
    		echo '<option value="'.$ligne["nom_categorie"].'"'.(isset($_POST['categorie_partenaire']) && $_POST['categorie_partenaire'] == $ligne['nom_categorie'] ? ' selected="selected"' : '').'>'.$ligne["nom_categorie"].'</option>';
    		//echo "<option value=\"" . $ligne[0] . "\">" . $ligne[0] . "</option>";
    		}
    		?>
    </select>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Vire cette partie
    value="<?php echo $categorie; ?>"
    de ton select.

    A+.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Voici un code qui fonctionne qui garde en mémoire le select d'une liste déroulante !
    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
     
    <select name="categorie_partenaire" id="categorie_partenaire">
    <option value=''> sélectionnez une catégorie </option>
    	<?php
    		if (isset($_GET['modifier_partenaire'])){
    		$requete = 'SELECT nom_categorie FROM categorie WHERE categorie.id_categorie IN(SELECT partenaire.id_categorie FROM partenaire WHERE id_partenaire=' . $_GET['modifier_partenaire'].')';
    $resultat = mysql_query($requete);
    $selected = ' selected="selected" ';
    while ($ligne = mysql_fetch_array($resultat)) {
    echo '<option value="' . $ligne[0] . '"' . $selected . '>' . $ligne[0] . '</option>';
    				}
    $requete = 'SELECT DISTINCT nom_categorie FROM categorie WHERE categorie.id_categorie NOT IN(SELECT partenaire.id_categorie FROM partenaire WHERE id_partenaire=' .$_GET['modifier_partenaire']. ') ORDER BY nom_categorie';
    $resultat = mysql_query($requete);
    while ($ligne = mysql_fetch_array($resultat)) {
    echo '<option value="' . $ligne[0] . '">' . $ligne[0] . '</option>';
    }
    }
    else {
       $requete = "SELECT DISTINCT nom_categorie FROM categorie ORDER BY nom_categorie";
       $resultat = mysql_query($requete);
      while ($ligne = mysql_fetch_array($resultat)) {
       echo '<option value="' . $ligne[0] . '">' . $ligne[0] . '</option>';
       }
      }
     ?>
    </select>

  4. #4
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Du coup t'as résolu le problème?

    Le script du dernier post est correct mais faire 2 requêtes SQL pour ça, ça me paraît beaucoup.

    Pourquoi ne pas faire un select renvoyant nom_categorie et id_categorie?

    Ensuite, dans ta boucle tu ajoutes l'attribut selected=selected si id_categorie=$_GET['modifier_partenaire'].

    C'est quand même plus simple.
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ton code est bien compliqué pour une chose aussi simple :
    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
    	<select name="categorie_partenaire" id="categorie_partenaire">
    		<option value=''> sélectionnez une catégorie </option>
    <?php	// requete
    		$requete = "SELECT id_categorie, nom_categorie FROM categorie ORDER BY nom_categorie;";
    		$resultat = mysql_query($requete);
    		while ($ligne = mysql_fetch_array($resultat)) {
    			if($_GET['modifier_partenaire']==$ligne['id_categorie']) {
    				$selected = ' selected="selected" ';
    			} else {
    				$selected = '';
    			}
    ?>
    		<option value="<?php echo $ligne['id_categorie']; ?>"<?php echo $selected; ?>><?php echo $ligne['nom_categorie']; ?></option>
    <?php
    		}
    ?>
    	</select>
    Je te conseille de mettre en value : "id_categorie" (et pas "nom_categorie") car "id_categorie" est UNIQUE (auto-incrément)

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/07/2006, 12h23
  2. Réponses: 4
    Dernier message: 04/02/2006, 14h42
  3. Vérifier la valeur d'un <select> <opt...> </s
    Par Sigur ros dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/08/2005, 16h40
  4. [sgbd] Recuperer valeurs d'un Select dans un tableau
    Par Mu_Belier dans le forum SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h46
  5. récupérer la valeur d'un select dans un autre
    Par alexander dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2005, 19h43

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