Reputation: 1687
How can I, populate a select box based on a variable that will contain data by comma separated values?
Example:
var x = Jenny,John,Stephanie,Marc,Ryan,Jessica
Expected result:
[DROP DOWN BOX]
Jenny
John
Stephanie
Marc
Ryan
Jessica
Upvotes: 1
Views: 10309
Reputation: 26386
HTML
<select id="myoptions">
</select>
JavaScript
var x = "Jenny,John,Stephanie,Marc,Ryan,Jessica";
var options = x.split(",");
var select = document.getElementById('myoptions');
for(var i=0; i<options.length; i++)
{
select.options[i] = new Option(options[i], i); //new Option("Text", "Value")
}
Upvotes: 3
Reputation: 15106
JavaScript
var x = 'Jenny,John,Stephanie,Marc,Ryan,Jessica'.split(',');
for (var i=0; i<x.length; i++) {
document.getElementById("names").options[i] = new Option(x[i], x[i]);
}
HTML
<select id="names"></select>
Demo
Upvotes: 0
Reputation: 253396
A simple means of this is:
function populateWithChildren(parent, childTag, values) {
if (!parent || !values) {
// no parent element, or no values, nothing can be done so quit here
return false;
} else {
// this ensures that 'values' is an array:
// if values is a string, it splits that string (assuming a comma delimiter),
// and split() returns an array, otherwise:
// we assume it's already an array and use that.
values = typeof values === "string" ? values.split(',') : values;
// iterates through all the values in the 'values' array,
for (var i = 0, len = values.length; i < len; i++) {
// creates a new element (as passed in the 'childTag' variable)
var newElem = document.createElement(childTag),
text = document.createTextNode(values[i]);
// appends the textNode to the created element
newElem.appendChild(text);
// appends the created-element to the 'parent' node passed to the function
parent.appendChild(newElem);
}
}
}
var parent = document.getElementById('select'),
x = 'Jenny,John,Stephanie,Marc,Ryan,Jessica';
populateWithChildren(parent, 'option', x);
Upvotes: 0
Reputation: 2878
Here's some pure javascript for you:
var x = 'Jenny,John,Stephanie,Marc,Ryan,Jessica';
x = x.split(',');
select = document.createElement('select');
for (var i=0;i<x.length;i++) {
var new_option_element = new Option(x[i], x[i]);
select.appendChild(new_option_element);
}
document.body.appendChild(select);
http://jsfiddle.net/crowjonah/ZwtUF/1/
Upvotes: 1
Reputation: 7223
Something like this should work:
<select id="DropDownList">
</select>
<script type="text/javascript" language="javascript">
var x = "Jenny,John,Stephanie,Marc,Ryan,Jessica";
var splitValues = x.split(",");
for (var i = 0; i < splitValues.length; i++) {
var opt = document.createElement("option");
// Add an Option object to Drop Down/List Box
document.getElementById("DropDownList").options.add(opt);
// Assign text and value to Option object
opt.text = splitValues[i];
opt.value = splitValues[i];
}
</script>
Upvotes: 1