[Php/SQL] Menu déroulant
Daim
-
Mopral -
Mopral -
Bonjour,
Je dois réaliser actuellement un menu déroulant affichant le nom de mes "clients" et renvoyer ensuite un affichage concernant leurs traitements.
La requête sql se fait, pas de soucis. Dans mon menu déroulant, j'ai bien mes 3 clients voulus.
Néanmoins, quand je charge la page, le menu déroulant est censé s'initialiser sur la valeur "Choisir client" et, à la place, elle s'initialise sur le dernier client de ma table.
Le soucis, c'est qu'apparement, je ne peux plus sélectionner le dernier client mais je peux sélectionner "Choisir client", ce qui n'a aucun intérêt.
Cela fait de nombreuses heures que je planche dessus sans trop comprendre pourquoi le dernier client devient la valeur "par défaut" du menu et surtout pourquoi je ne peux plus le sélectionner dans ce même menu.
Voici mon code :
<h1>Traitements List</h1>
<form ACTION=./Traitements method="POST">
<?php
@$nomclient = $_POST['nomclient'];
if ( @$_POST['nomclient'] != "")
{
echo "Tableau moche avec les traitements pour ".$nomclient;
}
else
{
$nomclient = "";
echo "<select name='nomclient' size='1' onchange='this.form.submit()'>";
$sql= "SELECT nom as nomclient FROM clients";
$rep= mysql_query($sql);
//echo"<option>Choisir un client</option>";
while($ligne_liste=mysql_fetch_array($rep))
{
$nomclient = $ligne_liste['nomclient'];
$selected = " selected='selected' ";
echo "<option Value=\"".$ligne_liste['nomclient']."\"".$selected.">".$ligne_liste['nomclient']."</option>";
}
echo"<option>Choisir un client</option>";
echo "</select>";
}
?>
</form>
</tbody>
</table>
<a href="<?php echo url_for('Traitements/create') ?>">Create</a>
Pour des raisons de configurations (j'ai des contraintes matérielles / physiques), je dois éviter au possible l'ajax.
En vous remerciant de votre aide.
Je dois réaliser actuellement un menu déroulant affichant le nom de mes "clients" et renvoyer ensuite un affichage concernant leurs traitements.
La requête sql se fait, pas de soucis. Dans mon menu déroulant, j'ai bien mes 3 clients voulus.
Néanmoins, quand je charge la page, le menu déroulant est censé s'initialiser sur la valeur "Choisir client" et, à la place, elle s'initialise sur le dernier client de ma table.
Le soucis, c'est qu'apparement, je ne peux plus sélectionner le dernier client mais je peux sélectionner "Choisir client", ce qui n'a aucun intérêt.
Cela fait de nombreuses heures que je planche dessus sans trop comprendre pourquoi le dernier client devient la valeur "par défaut" du menu et surtout pourquoi je ne peux plus le sélectionner dans ce même menu.
Voici mon code :
<h1>Traitements List</h1>
<form ACTION=./Traitements method="POST">
<?php
@$nomclient = $_POST['nomclient'];
if ( @$_POST['nomclient'] != "")
{
echo "Tableau moche avec les traitements pour ".$nomclient;
}
else
{
$nomclient = "";
echo "<select name='nomclient' size='1' onchange='this.form.submit()'>";
$sql= "SELECT nom as nomclient FROM clients";
$rep= mysql_query($sql);
//echo"<option>Choisir un client</option>";
while($ligne_liste=mysql_fetch_array($rep))
{
$nomclient = $ligne_liste['nomclient'];
$selected = " selected='selected' ";
echo "<option Value=\"".$ligne_liste['nomclient']."\"".$selected.">".$ligne_liste['nomclient']."</option>";
}
echo"<option>Choisir un client</option>";
echo "</select>";
}
?>
</form>
</tbody>
</table>
<a href="<?php echo url_for('Traitements/create') ?>">Create</a>
Pour des raisons de configurations (j'ai des contraintes matérielles / physiques), je dois éviter au possible l'ajax.
En vous remerciant de votre aide.
A voir également:
- [Php/SQL] Menu déroulant
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Supprimer menu déroulant excel - Forum Excel
- Easy php - Télécharger - Divers Web & Internet
4 réponses
Il est hebergé en local actuellement donc ça va pas être possible ^^'
Voila un screen compilé du soucis (je conçois que c'est difficilement compréhensible avec des mots).
http://img171.imageshack.us/img171/5438/menudroulant.jpg
Voila un screen compilé du soucis (je conçois que c'est difficilement compréhensible avec des mots).
http://img171.imageshack.us/img171/5438/menudroulant.jpg
Hello,
Ce que je ne comprend pas dans ton code, c'est : Pourquoi mettre "selected='selected'" pour toutes les options, sauf "Choisir un client" (et accesoirement, pourquoi utiliser une variable ?)
Essaie avec ceci, peut-etre :
echo "<select name='nomclient' size='1' onchange='this.form.submit()'>";
$sql= "SELECT nom as nomclient FROM clients";
$rep= mysql_query($sql);
echo"<option value='defaut' selected >Choisir un client</option>";
while($ligne_liste=mysql_fetch_array($rep))
{
$nomclient = $ligne_liste['nomclient'];
echo "<option value=".$ligne_liste['nomclient'].">".$ligne_liste['nomclient']."</option>";
}
echo "</select>";
}
Et accesoirement, plutot que de soumettre directement le formulaire a chaque changement, tu fais une petite fonction javascript qui verifie que ce n'est pas la valeur "defaut" qui est selectionnée.
Voila, j'espere que ca va t'aider
Ce que je ne comprend pas dans ton code, c'est : Pourquoi mettre "selected='selected'" pour toutes les options, sauf "Choisir un client" (et accesoirement, pourquoi utiliser une variable ?)
Essaie avec ceci, peut-etre :
echo "<select name='nomclient' size='1' onchange='this.form.submit()'>";
$sql= "SELECT nom as nomclient FROM clients";
$rep= mysql_query($sql);
echo"<option value='defaut' selected >Choisir un client</option>";
while($ligne_liste=mysql_fetch_array($rep))
{
$nomclient = $ligne_liste['nomclient'];
echo "<option value=".$ligne_liste['nomclient'].">".$ligne_liste['nomclient']."</option>";
}
echo "</select>";
}
Et accesoirement, plutot que de soumettre directement le formulaire a chaque changement, tu fais une petite fonction javascript qui verifie que ce n'est pas la valeur "defaut" qui est selectionnée.
Voila, j'espere que ca va t'aider
Ok merci Mopral, j'ai testé ça et en effet ça règle ce soucis de sélection.
En fait c'était juste mon "selected" qui mettait le bordel ? O_o
Je dois t'avouer que je n'avais pas cherché de ce côté là. J'ai dû retourner tout mon code une fois mais pas ça ^^'
En te remerciant !
Et en ce qui concerne la fonction javascript, je vais probablement m'y mettre quand j'aurais reglé tout ça ^^
Il ne me reste plus qu'à adapter cette partie avec le reste de la page !
Merci encore.
En fait c'était juste mon "selected" qui mettait le bordel ? O_o
Je dois t'avouer que je n'avais pas cherché de ce côté là. J'ai dû retourner tout mon code une fois mais pas ça ^^'
En te remerciant !
Et en ce qui concerne la fonction javascript, je vais probablement m'y mettre quand j'aurais reglé tout ça ^^
Il ne me reste plus qu'à adapter cette partie avec le reste de la page !
Merci encore.
Le probleme etait en effet que tu "selectionnais" les 3 options en même temps, et donc, par consequent, HTML a choisi la derniere ligne selectionnée.
En revanche, je ne vois pas trop pourquoi il empechait par la suite de selectionner le 3eme client, mais tant que le probleme est reglé, c'est le principal ;)
En revanche, je ne vois pas trop pourquoi il empechait par la suite de selectionner le 3eme client, mais tant que le probleme est reglé, c'est le principal ;)