2010-10-02 6 views
0

bonjour J'ai une liste déroulante qui fonctionne de toutes sortes, mais au lieu de sélectionner la valeur empyt sélectionnée 'sélectionner une adresse', elle affiche toujours la dernière entrée dans la liste déroulante au lieu de la valeur vide sélectionnée. J'ai d'abord eu de l'aide pour le code d'une autre source, mais j'ai l'impression d'avoir perdu mon chemin avec. Où vais-je mal? merci beaucoupsélectionnez la valeur vide initiale

PS. désolé pour la mise en page, mais c'est ainsi qu'il a été mis en page après avoir appuyé sur le bouton de code.

> $address_result = mysql_query("SELECT 
    > * FROM company_com ORDER BY address1_com ASC"); $dropdown = 
    > "<select name='address'>"; $dropdown 
    > .= "<option SELECTED value=\"\">Select 
    > an Address</option>"; 
while($row = mysql_fetch_assoc($address_result)) { 
     $address = $row["address1_com"].$row["address2_com"].$row["address3_com"]; 

        $dropdown .= "<option SELECTED value='".$row['address']."'>$address</option>"; 

} 
$dropdown .= "</select>"; 

Répondre

0

Retirez le SELECTED de:

$dropdown .= "<option SELECTED ..... 
1

Cette boucle définit l'attribut selected de tous les option tags. Voir votre source pour vérifier. Le navigateur affiche par défaut le dernier sélectionné. C'est pourquoi le dernier dans la boucle est sélectionné.

Vous devez faire une vérification en PHP pour tester si la sortie courante est l'adresse sélectionnée et seulement ensuite définir l'attribut selected. Si aucun n'a cet attribut, le navigateur choisira par défaut la première option - dans votre cas, la valeur par défaut.

Vous devez également générer cet attribut en tant que selected="selected" pour les normes HTML appropriées.

+0

'selected' lui-même est parfaitement valide HTML 4.01' Strict', que '' XHTML' exige selected = "selected" ' – Wrikken

+0

Bonne clarification. Cela fait longtemps que j'ai écrit HTML 4. Je conseille toujours 'selected =" selected "' pour * best practice *. –

+0

La meilleure pratique consiste à connaître le code HTML avec lequel vous travaillez, les balises à fermeture automatique par exemple sont requises en XHTML, mais illégales en HTML ... – Wrikken

0
<? 
$address_result = mysql_query("SELECT * FROM company_com ORDER BY address1_com ASC"); 
$dropdown ="<select name='address'>"; 
$dropdown.= "<option SELECTED value=\"\">Select an Address</option>"; 
while($row = mysql_fetch_assoc($address_result)) { 
    $address = $row["address1_com"].$row["address2_com"].$row["address3_com"]; 
    $dropdown .= "<option value='".$row['address']."'>$address</option>"; 
} 
$dropdown .= "</select>"; 
?> 

Fait

+0

merci ollie. eh simple :-) une chose. parce que certains des addreess sont assez longs est-il possible de limiter la taille de la liste déroulante en termes de largeur? merci –

+0

ok. l'a fait avec css. Merci –

Questions connexes