2010-04-23 6 views
1

J'ai un selectbox sur un formulaire - que je l'ai tourné dans une zone de liste en mettantaprès toutes les valeurs dans la boîte de sélection/listbox

<select id="Select1" name="D1" size="5" style="width: 220px"> 

Je remplissant ce select/ListBox avec des valeurs ..

Lorsque je poste le formulaire, comment puis-je obtenir toutes les valeurs dans la boîte de sélection .. est-ce possible ou suis-je seulement en mesure d'en obtenir un qui a été sélectionné.

Le problème est que je veux toutes les valeurs de la sélection (je ne suis pas tout sélectionner en tant que telle)

Toutes les idées?

Répondre

1

Avant de soumettre le formulaire, vous pouvez utiliser un peu de JavaScript pour tirer les éléments de la sélection et les mettre dans un champ de texte caché (comme une chaîne délimitée)

Par exemple, vous pouvez obtenir les valeurs à l'aide

var select1 = document.getElementById('select1'); 
var values = new Array(); 

for(var i=0; i < select1.options.length; i++){ 
    values.push(select1.options[i].value); 
} 

var allValues = values.join(";"); 
alert(allValues); 

Espérons que ça aide.

+0

ok..Je pense que c'est la voie à suivre. mais j'essaye d'obtenir chaque valeur dans le choix mais ai des problèmes obtenant la valeur. ce que j'ai: function doSelects() { var select1 = document.getElementById ("select1"); pour (s1 = 1; s1 <= select1.length; s1 ++) { alert (select1.options [s1] .value); } } .......... comment produire chaque valeur? – thegunner

+0

est-il select1.options [s1] .value c'est évidemment incorrect mais ne connaissez pas la syntaxe correcte – thegunner

+0

J'ai mis à jour ma réponse avec un exemple qui fonctionne pour moi. Vous voudrez exécuter votre boucle for à partir de zéro, et se terminant à un moins de options.length puisque les options sont un tableau basé sur zéro. –

1

Comment ajoutez-vous les valeurs à la zone de liste? Sont-ils statiques ou sont-ils tirés d'une base de données?

Si vous extrayez de la base de données je créerais une fonction que vous utilisez pour obtenir les données et lier à la zone de liste.

Utilisez ensuite cette même fonction lorsque vous souhaitez obtenir ces valeurs après la publication. Vous devrez peut-être utiliser des champs cachés pour transmettre les paramètres que vous utilisez pour obtenir les valeurs de la zone de liste en premier lieu.

exemple:

function get_models_for_make(int make_id) 
    mydata_rs = SELECT name, id FROM models WHERE make_id = make_id 
    return mydata_rs 
end 

pour que vous puissiez utiliser ces données pour lier les objets à votre listbox et utiliser aussi pour obtenir les valeurs plus tard que vous attacha à votre liste.

-1
for (int i = source.Items.Count - 1; i >= 0; i--) 
     { 
      ListItem item = source.Items[i]; 

      if (moveAllItems) 
       item.Selected = true; 

      if (item.Selected) 
      { 
       // if the target already contains items, loop through 
       // them to place this new item in correct sorted order 
       if (target.Items.Count > 0) 
       { 
        for (int j = 0; j < target.Items.Count; j++) 
        { 
         if (target.Items[j].Text.CompareTo(item.Text) > 0) 
         { 
          target.Items.Insert(j, item); 
          item.Selected = false; 
          break; 
         } 
        } 
       } 

       // if item is still selected, it must be appended 
       if (item.Selected) 
       { 
        target.Items.Add(item); 
        item.Selected = false; 
       } 

       // remove the item from the source list 
       source.Items.Remove(item); 
      } 
     } 
+0

Ce commentaire n'est pas utile. Un certain contexte serait bien. Est-ce côté serveur ou côté client? Avez-vous oublié une déclaration? Qu'est-ce que moveAllItems? – Barett

Questions connexes