2010-09-09 2 views
1

Voici ce que je dois écrire pour un tas de menus déroulants:Dans un formulaire HTML, je dois générer progressivement des valeurs croissantes dans les options déroulantes d'une balise select

<select> 
    <option value="23">23</option> 
    <option value="23.5">23.5</option> 
    <option value="24">24</option> 
    <option value="24.5">24.5</option> 
    [etc...] 
</select> 

Il doit augmenter de 0,5 pour chaque option.

La partie etc. est où j'ai besoin de répéter le processus comme 40+ fois. Il y a plusieurs sélections sur la page ainsi que des valeurs commençant et s'arrêtant à des nombres différents.

Ces chiffres seront statiques et ne changeront pas une fois générés. Donc, les valeurs et le code HTML doivent juste être construits une fois et c'est bon à faire. Le site est alimenté en PHP.

Je ne veux pas avoir à coder à la main toute cette option de code après une autre option! Je ne suis pas sûr de la façon la plus simple de le faire. Regex? JS?

+0

Vous pouvez le faire côté serveur ou côté client. Vous n'avez pas mentionné la langue que vous utilisez sur le serveur (le cas échéant). – LatinSuD

+0

Ouais, juste remarqué cela et ajouté PHP à la description. – micah

Répondre

1
$total = 40; 
$value = 23.00; 

$HTML = '<select>'; 

for($i = 0; $i < $total; $i++) 
{ 
    $HTML .= '<option value="'.$value.'">'.$value.'</option>'; 
    $value += 0.5; 
} 

$HTML .= '</select>'; 
+0

Ça a l'air génial! Depuis que j'ai posté, un de mes amis a trouvé cette réponse aussi. http://stackoverflow.com/questions/2121264/dynamically-create-in-php-a-drop-down-list-from-a-range-of-numbers-with-incremen On dirait qu'ils font fondamentalement la même chose chose. – micah

0

Si vous cherchez simplement à imprimer les données une fois, j'irais avec un langage comme Python. Vous pouvez les générer dynamiquement au moment de l'exécution avec JavaScript si vous le souhaitez, mais sachez que cela réduira les fonctionnalités pour les utilisateurs qui désactivent JS. En Python puis:

for num in range(25, 50): 
    print r'<option value="%d">%d</option>' % (num, num) 
    print r'<option value="%d.5">%d.5</option' % (num, num) 

Cela devrait vous donner autant que vous avez besoin, et être adaptable. De plus, pour ce que ça vaut, vous devriez utiliser un langage de script plus puissant (PHP, ASP, Ruby, etc) dans la page pour faire ce genre de chose si possible, ne pas créer un tas de statique, codé en dur des dossiers. Ceux-ci vont être difficiles à maintenir plus tard.

+0

Très cool! J'ai oublié de mentionner que nous utilisons PHP. Existe-t-il un moyen de convertir cela en PHP? – micah

+0

L'autre réponse de Ben est une bonne solution qui peut être placée dans vos fichiers PHP. De cette façon, il n'y a rien de codé en dur et il est facile de le mettre à jour plus tard. +1 là-bas. –

Questions connexes