begin process at 2012 05 31 00:32:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Garder la sélection d'une liste déroulante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Garder la sélection d'une liste déroulante

samedi 12 juillet 2008 à 15:07:08 | Garder la sélection d'une liste déroulante

jyi

Voilà mon problème:

J'ai créé un liste déroulante qui  est remplie par un boucle while avec les données d'une base de données après une requête sql.
Quand je clique sur une des lignes je déclenche (entr'autre) un rechargement de la page compet_saisie.php (onclick=submit()  + method="post").
Le problème est que j'aimerais garder la sélection après le rechargement de page mais ceci ne se fait pas.

Voici le code du fichier compet_saisie.php
Il semble que le test $licencie_selectionne==$_POST['liste5'] ne marche pas et je n'arrive pas à comprendre pourquoi.
Merci d'avance pour votre contribution.

<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="liste5" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t";
    
     echo "<option>" .$licencie_selectionne; 
    }
    if (isset($_POST['liste5']))
     {
         $selected="";
         $licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp". "\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t"; 
      
         echo "<option>" .$licencie_selectionne; 
        
          if ($licencie_selectionne==$_POST['liste5'])
           {
            $selected="selected=\"selected\"";
            echo "<option value =\"".$licencie_selectionne."\"" .$selected.">".$licencie_selectionne."</option>   \n";
           }
     }
   
  ?>
    </select>
  
</form>
mardi 22 juillet 2008 à 13:51:09 | Re : Garder la sélection d'une liste déroulante

toutoos

A ta place je ne ferai pas comme ca!

voici ton code :



<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="liste5" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t";
    
     echo "<option>" .$licencie_selectionne; 
    }
    if (isset($_POST['liste5']))
     {
         $selected="";
         $licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp". "\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t"; 
      
         echo "<option>" .$licencie_selectionne; 
        
          
if ($licencie_selectionne==$_POST['liste5'])
           {
            $selected="selected=\"selected\"";
            echo "<option value =\"".$licencie_selectionne."\"" .$selected.">".$licencie_selectionne."</option>   \n";
           }
     }
   
  ?>
    </select>
  
</form>


Moi je te conseil :


<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="liste5" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t";
    
     echo "<option value ='".$licencie_selectionne.'"'; 
     if ($licencie_selectionne==$_POST['liste5']) {
          echo " selected";
     }
     echo ">".$licencie_selectionne."</option>";
    }
    ?>
    </select>
  
</form>

Je me permet de texpliquer pourquoi!

Dabord si tu ne passe aucun parametre a ton select ( le value de chaque otpion ) ta variable $_POST['liste5'] sera toujours nulle vue que tu ne la passe pas! ensuite tu test le post directement sur ta boucle et pas a la suite car sinon elle va retourner tous les resultats! et voila je pense que c'est tt se ke je peut dire!
mardi 22 juillet 2008 à 21:24:31 | Re : Garder la sélection d'une liste déroulante

jyi

Bonsoir,

Je te remercie de prendre de ton temps pour t'interesser à mon problème.

J'ai essayé le sript et voilà ce qui en ressort:
-dans la liste déroulante, je n'ai que 10 noms au lieu de 32
-A côté de chaque noms dans la liste j'ai un message qui me dit que la variable $_POST['liste5'] n'est pas définie (ligne où il y a : if ($licencie_selectionne==$_POST['liste5']))

-Le nom cliqué ne reste pas sélectionné au rechargement de page.

L'affaire ne me paraît  pas simple....

Peut-être as tu une autre solution ?

Merci en attendant

mercredi 23 juillet 2008 à 09:34:04 | Re : Garder la sélection d'une liste déroulante

toutoos

je voudrai juste que tu esplik ca!

['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t";

tu ressort plusieurs fois la meme colone et ligne du tableau

mercredi 23 juillet 2008 à 10:09:42 | Re : Garder la sélection d'une liste déroulante

jyi

Bonjour,

La variable $val est le résultat d'une requête sur la table licencié
la variable session représente le club concerné.

Dans le bout de code que je t'ai fourni il manque les deux lignes suivantes:

$sql="SELECT  *  FROM  licencies WHERE club='".$_SESSION['club']."' ' ";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

while($val=mysql_fetch_array($req))

Suite à cette requête j'extrais le n° de licence, le nom, prénom, le sexe et la catégorie du licencié:

$licencie_selectionne=$val['num_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['nom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t". $val['pnom_lic']."\t"."&nbsp"."\t"."&nbsp"."\t".$val['sexe_lic']."\t".$val['categorie_lic']."\t";
mercredi 23 juillet 2008 à 10:33:45 | Re : Garder la sélection d'une liste déroulante

toutoos

aaa okai
alors a ta place je ne ferai pas comme ca!!!

a koi te sert ton menu déroulant si tu y affiche la totalitée des informations?

a ta place je n'extrairai que le nom et prenom enfin regarde je te montre!


// Pour la partie menu déroulant
<?php
$sql="SELECT  *  FROM  licencies WHERE club='".$_SESSION['club']."' ' ";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
?>
<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="numerodelicence" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_nomprenom=$val['nom_lic']."&nbsp".$val['pnom_lic'];
     $licencie_num=$val['num_lic'];
    
     echo "<option value ='".$licencie_num.'"'; 
    
if ($_POST['numerodelicence'] == $licencie_num ) {
          echo " selected";
     }
     echo ">".$licencie_nomprenom."</option>";
    }
    ?>
    </select>
  
</form>
<?php
// pour la partie tableau

$sql2="SELECT  *  FROM  licencies WHERE club='".$_SESSION['club']."' AND num_lic='".$_POST['numerodelicence']."' LIMIT 1";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());
if ( $val2 = mysql_fetch_array($req2) ) {
// et la tu met toute les information tel que le nom prenom numéro sex ...
}
?>
mercredi 23 juillet 2008 à 11:26:39 | Re : Garder la sélection d'une liste déroulante

toutoos



Ouaaaiiiiiisssss!
mercredi 23 juillet 2008 à 11:52:06 | Re : Garder la sélection d'une liste déroulante

jyi

Je suis désolé mais hélas d'une part j'ai toujours les mêmes problèmes que le 1 er code que tu m'avais fourni (la variable POST non définie avant d'avoir cliqué sur un nom de la liste) et d'autre part, quand je clique sur une ligne de la liste celle-ci ne reste toujours pas sélectionnée après le rechargement de page.

Dans ton code, tu remplis d'une part une liste avec les noms et les prénoms et d'autre part un tableau avec les caractéristique du licencié sélectionné. Ceci je l'avais déjà fait.

Le problème reste la liste déroulante où la ligne sélectionnée ne veut pas rester sélectionnée après un rechargement de page
mercredi 23 juillet 2008 à 16:30:41 | Re : Garder la sélection d'une liste déroulante

toutoos

si tu test ton script sur easy php la variable $_POST renvéra toujour cette érreur le code idéale serai de la tester avant de l'utiliser! ce qui n'est pas un problème et je ne voi pas pourquoi la ligne ne resterai pas sélectionné! c'est un copier collé d'un de mes menu déroulant!

Voila le code idéal

<?php
$sql="SELECT  *  FROM  licencies WHERE club='".$_SESSION['club']."' ' ";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
?>
<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="numerodelicence" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_nomprenom=$val['nom_lic']."&nbsp".$val['pnom_lic'];
     $licencie_num=$val['num_lic'];
    
     echo "<option value ='".$licencie_num.'"'; 
    
if ( !empty($_POST['numerodelicence']) ) {
     if ( $_POST['numerodelicence'] == $licencie_num ) {
          echo " selected";
     }
     }
     echo ">".$licencie_nomprenom."</option>";
    }
    ?>
    </select>
  
</form>
<?php
// pour la partie tableau
if ( !empty($_POST['numerodelicence']) ){
$sql2="SELECT  *  FROM  licencies WHERE club='".$_SESSION['club']."' AND num_lic='".$_POST['numerodelicence']."' LIMIT 1";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());
if ( $val2 = mysql_fetch_array($req2) ) {
// et la tu met toute les information tel que le nom prenom numéro sex ...
}
}
else {
echo "Vous devez sélectionner une personne licenciée";
}
?>

Donc voila a modifier a ta guise et évite d'utilise easy php ou autre mais le en ligne c'est plus directe et les variables non postées ne retourne aucune érreur car le désaventage de ce genre de logiciel c'est que tu ne peut pas utiliser les variables ou tu a défini la valeur 0 car pour ce logiciel elle seront quand meme retournée vide alors que tu les a définie!

vendredi 25 juillet 2008 à 18:18:00 | Re : Garder la sélection d'une liste déroulante

jyi

Bonsoir,
Me revoila de retour.
J'ai essayé ton code hélas ça ne marche pas.
J'ai fait quelques tests et j'ai constaté ceci:

- Dans l'égalité if ( $_POST['numerodelicence'] == $licencie_num )à la place de $licencie_num il faudrait peut-être $licencie_nomprenom car le $_POST['numerodelicence'] pointe un nom et un prénom ?

- D'autre part, pour forcer et tester cette egalité, jute avant j'ai inséré la ligne:$_POST['numerodelicence'] = $licencie_nomprenom );

le résultat c'est que la sélection de la ligne se met à fonctionner mais la ligne sélectionnée est la dernière quelque soit la ligne sélectionnée. 

Avec ce test, on sait au moins que, sans la forcer, l'égalité ne fonctionne pas.

Je n'arrive pas à comprendre car pour moi ton code est nickel.


<form id="form1" name="form1"  onclick=submit() method="post" action="compet_saisie.php">
  <p align="left">
    <select name="numerodelicence" size="10"  style="background: #FFFFCC" >
      <?php
  
    while($val=mysql_fetch_array($req))
    {
     $licencie_nomprenom=$val['nom_lic']."&nbsp".$val['pnom_lic'];
     $licencie_num=$val['num_lic'];
    
     echo "<option value ='".$licencie_num.'"'; 
    
if ( !empty($_POST['numerodelicence']) ) {
      $_POST['numerodelicence'] = $licencie_nomprenom );
     if ( $_POST['numerodelicence'] == $licencie_num ) {
          echo " selected";
     }
     }
     echo ">".$licencie_nomprenom."</option>";
    }
    ?>
    </select>
  
</form>


1 2

Cette discussion est classée dans : selectionne, val, nbsp, licencie, lic


Répondre à ce message

Sujets en rapport avec ce message

PHP et Javascript [ par romagnoli64 ] Bonjour à tout le monde! J'espère que vous pourrez m'aider!! Voilà mon problème, j'ai un fichier "test.php3", dans lequel une fonction en Javascript e HELP ME !!! [ par ekinoks ] g une question qui me semble assé assé dur ...comment on fait pour de coupé le comtenu d'une variable en 3 exemple :$val = "variable" // g envi ici q $val['nom'] vs. $val[0] - MySQL [ par webdesignasp ] salut,qq'un sait-il utiliser :while($val=mysql_fetch_array($res,$bdd)) { $code = $val['code']; $nom = $val['nom'] Pagination [ par jotrash ] Bonjour ou bonsoir à toi qui lira ce message.Je fais un script de pagination qui marche nickel pour une fois.But mais paske ya toujours un mais, j'ai un simple problème de synthaxe [ par tibo830 ] j'ai un petit problème tout con. le ' dans le title de mon bouton fermer ne s'affiche pas. Quelle est la synthaxe pour qu'il ne soit pas pris comme un valeur de passage de paramètre irrécupérable ??? [ par Tchii28 ] SalutVoila mon problème j'ai une fonction en javascript qui me permet d'ouvrir une popup function ouvrirPopupEncaisse(champ, val) { if (c Mysql, php et javascript [ par dcbastien ] J'ai mis au point un petit script mais qui ne fonctionne pas comme je le souhaiterai:[red]session_start();if(!isset($_SESSION['nom'])) {echo'Veuillez probleme envoie de mail html [ par hacka ] Bonjour tout le monde voila je dois faire une page de devis avec des checkbox à cocher pour choisir les différentes options... Les checkbox sont dans Cookies MOZILLA vs IEXPLORER [ par malik7934 ] Hello, Pour stocker mes cookies, j'utilise 'setcookie' et ensuite pour les lire $cookie   = $HTTP_COOKIE_VARS[$val]; où val est le nom de mon cookie. probleme affichage image [ par zizou94 ] Bonjour à tousVoivi mon deuxieme souci du jour.J'ai un code ou il y a du javascript et du php mélanger. Ce code permet l affichage de l image au passa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales