Problème avec <select...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec <select...

Re: Problème avec <select...

par Jonathan » 17 mai 2011, 17:34

Bon et bien ça marche, je ne sais pas comment j'ai fait mais ça marche !
<select name="dept" id="dept">
<?
$SQL = "SELECT Dept_NomDept FROM departements";
$res = mysql_query($SQL);
while($dept=mysql_fetch_array($res)) {
	if (substr($dept['Dept_NomDept'],0,2) == substr($val,0,2) ) {
	echo '<option value="'.$val.'" selected="selected">'.$val.'</option>\n';
	}
	else {
	echo '<option value="'.$dept['Dept_NomDept'].'">'.$dept['Dept_NomDept'].'</option>\n';
	}
}
?>
</select>

Merci encore à vous tous, toujours réactifs et sympas...

Re: Problème avec <select...

par moogli » 17 mai 2011, 16:58

poste le code complet ainsi que le résultat généré (quand tu regarde le code source HTML a partir du navigateur).

@+

Re: Problème avec <select...

par Jonathan » 17 mai 2011, 16:48

-Je viens de vérifier le contenu de ma variable de session. Résultat, il n'y avait rien dedans... Mais maintenant que j'ai rectifié le problème, ça ne fonctionne toujours pas
-Mon select est bon !
-Et voici le code :
$val = $_SESSION['dept'];
<select name="dept" id="dept">
<?
$SQL = "SELECT Dept_NomDept FROM departements";
$res = mysql_query($SQL);
while($dept=mysql_fetch_array($res)) {
    echo '<option value='.$dept['Dept_NomDept'];
    if ( $dept['Dept_NumeroDept'] == $val ) {
       echo ' selected';
    }
    echo ' >'.$dept['Dept_NomDept'].'</option>\n';
}
?>
</select>
C'est juste au niveau de l'affichage que ça pêche...



Même problème avec ton code, moogli.
La valeur de $val est celle que j'ai sélectionné. La valeur est bien stockée, mais je n'arrive pas à l'afficher...
Il y a bien un session_start(), à la ligne 2 de ma page !

Re: Problème avec <select...

par moogli » 17 mai 2011, 16:43

correction xhtml (ou jepourrais dire simplement html correcte et évitant le cas imprévue ;))
<?php
// Bon début : on récupère la valeur gardée en session
$val = $_SESSION['dept'];?>
<select name="Dept" id="Dept">
<?php
$SQL = "SELECT Dept_NomDept FROM departements";
$res = mysql_query($SQL);
// while($val=mysql_fetch_array($res)) Là, par contre, tu viens de tuer ta variable !!!
while ($dept = mysql_fetch_array($res) ) {
   echo '<option value="'.$dept['Dept_NomDept'].'"';
   if ( $dept['Dept_NumeroDept'] == $val ) {
      // On rajoute le mot clé selected sur le département correspondant à cleui gardé en session
      echo ' selected="selected"';
   }
   echo ' >'.$dept['Dept_NomDept'].'</option>'."\n";
}
?>
</select>
ce code devrais fonctionner.
sinon qu'elle est la valeur de $val (var_dump($val) pour avoir un résultat)
est ce qu'il y a bien un session_start() ? si ce n'est pas le cas il serait bon d'utiliser un niveau d'erreur adéqua au développement ;) (error_reporting(E_ALL|E_STRICT); ini_set('display_error',1);)

a quoi ressemble la source html généré ?

@+

Re: Problème avec <select...

par macgawel » 17 mai 2011, 16:37

Ca ne marche pas avec ce code... :( Ca me met la dernière valeur présente dans la base de données (988 - Nouvelle Calédonie), et non celle que l'utilisateur a choisi précédemment...
- Affiche le contenu de ta session print_r ($_SESSION);, histoire de vérifier...
- Regarde le source de la page (surtout du select :oops: ) s'il n'y a pas de truc bizarre.
- Copie le code ici, qu'on puisse voir ce qu'il donne.

Re: Problème avec <select...

par Jonathan » 17 mai 2011, 16:27

Ca ne marche pas avec ce code... :( Ca me met la dernière valeur présente dans la base de données (988 - Nouvelle Calédonie), et non celle que l'utilisateur a choisi précédemment...

Re: Problème avec <select...

par macgawel » 17 mai 2011, 16:02

Bonjour.
<?php
// Bon début : on récupère la valeur gardée en session
$val = $_SESSION['dept'];?>
<select name="Dept" id="Dept">
<?php
$SQL = "SELECT Dept_NomDept FROM departements";
$res = mysql_query($SQL);
// while($val=mysql_fetch_array($res)) Là, par contre, tu viens de tuer ta variable !!!
while ($dept = mysql_fetch_array($res) ) {
   echo '<option value='.$dept['Dept_NomDept'];
   if ( $dept['Dept_NumeroDept'] == $val ) {
      // On rajoute le mot clé selected sur le département correspondant à cleui gardé en session
      echo ' selected';
   }
   echo ' >'.$dept['Dept_NomDept'].'</option>\n';
}
?>
</select>

Re: Problème avec <select...

par moogli » 17 mai 2011, 15:41

salut,

ta solution ne semble pas la bonne :mrgreen:

la bonne solution c'est de comparée la valeur issue la table à celle qu'il y a dans la variable de session et de la tu utilise la propriété selected de l'option liste prédéfinie

@+

Problème avec <select...

par Jonathan » 17 mai 2011, 15:31

Bonjour,

Je suis désolé de spamer le forum en ce moment, mais je n'y arrive vraiment pas. J'ai tout essayé (façon de parler, car j'ai évidemment pas essayé la BONNE solution) pour parvenir à mes fins, mais je ne m'en sors pas...

J'ai un champ "département" dans un formulaire, et je souhaiterais garder en mémoire le choix de l'utilisateur, s'il souhaite revenir sur la page plus tard. Or, s'il rafraichit la page, la valeur revient à la première par défaut... Voici mon code :
$val = $_SESSION['dept'];
<select name="Dept" id="Dept">

<?php
$SQL = "SELECT Dept_NomDept FROM departements";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res))
{
   echo '<option value='.$val['Dept_NomDept'].' >'.$val['Dept_NomDept'].'</option>\n';
}
?>
</select>