Valeur par defaut d'une liste de selection

Guilt
Invité n'ayant pas de compte PHPfrance

23 juin 2005, 14:43

Bonjour,
j'ai une question surement simple : je voudrais après avoir crée une liste que le premier élément soit sélectionné par defaut. Comme la liste est crée par une Base de donnée je ne peux pas faire de <option selected...>.

Voici le code de création de la liste :
$listdomain = "<SELECT NAME='domain' size = 10 onChange='ModifierListe(-1)'>";
// On boucle sur la table
$i=0;
$tab=mysql_query("SELECT name,ID FROM `domains`");
while ($ligne=mysql_fetch_array($tab)) {
    $listdomain .= "<OPTION VALUE=$i>$ligne[0]</OPTION>";
	$i=$i+1;
}
$listdomain .= "</SELECT>";
Merci d avance.[/php]

Mammouth du PHP | 19672 Messages

23 juin 2005, 18:55

Suffit de tester la valeur de $i : si $i vaut zéro, tu ajoutes selected, sinon rien.
$listdomain = "<SELECT NAME='domain' size = 10 onChange='ModifierListe(-1)'>";
// On boucle sur la table
$i=0;
$tab=mysql_query("SELECT name,ID FROM `domains`");
while ($ligne=mysql_fetch_array($tab))
{
    $listdomain .= ($i == 0)?"<OPTION VALUE=\"". $i ."\" selected>". $ligne[$i] ."</OPTION>":"<OPTION VALUE=\"". $i ."\">". $ligne[$i] ."</OPTION>";
    $i++;
}
$listdomain .= "</SELECT>";
TU noteras que j'ai un peu modifié des détails:
- La concaténation PHP/HTML:
- $i++ au lieu de $i = $i + 1;
- Si tu cherches à chaque tour de boucle $ligne[0], tu aura une liste avec autant de fois le même élément et ton pointeur ne sert pas à grand chose donc j'ai remplacé par $i
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Guilt
Invité n'ayant pas de compte PHPfrance

24 juin 2005, 10:52

Merci pr le selected ça marche impeccable et pour l'optimisation du code.

Par contre, au sujet du "Si tu cherches à chaque tour de boucle $ligne[0], tu aura une liste avec autant de fois le même élément et ton pointeur ne sert pas à grand chose donc j'ai remplacé par $i" cela ne fonctionne pas car comme à chaque fois dans le while la valeur $ligne prend une nouvelle valeur je pense que c'est bien $ligne[0] qu'il faut utiliser, car $ligne[1] n'existe pas ni $ligne[2].... En tous cas avec $ligne[0] cela fonctionne...

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

24 juin 2005, 11:03

alors toi t'es sacrément gonflé !

et ce post là c'est quoi ?? http://www.phpfrance.com/forums/voir_sujet-4859.php

tu postes le MEME message (à la virgule près!!!), et tu obtiens la MEME réponse

je t'avais mis sur la voie, et zeus t'avais filé le code

Merci, ça fait toujours plaisir de voir que ce qu'on a donné comme infos c'est de la m... et que la personne en a rien à battre de ce qu'on lui a dit

:evil: :evil: :evil:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juin 2005, 11:08

Vu qu'il a posté à la même heure, je pense que c'est plus un simple multi-postage qu'un réel foutage de tête

Mais tu as raison, c'est assez gonflant
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer