I am getting this list from server(php):
["Ak-Bulak","Balykchy","Batken"]
how can i access it and put into selects options thru js, what i tried is:
for (var i in data) {
$('#cities').append('<option>'+ data[i] +'</option>');
}
it putting every chars as one option: <option>[</option>
, <option>"</option>
...
how can i access each element here? not each char..
I am getting this list from server(php):
["Ak-Bulak","Balykchy","Batken"]
how can i access it and put into selects options thru js, what i tried is:
for (var i in data) {
$('#cities').append('<option>'+ data[i] +'</option>');
}
it putting every chars as one option: <option>[</option>
, <option>"</option>
...
how can i access each element here? not each char..
Share Improve this question edited May 16, 2013 at 11:12 rahularyansharma 10.8k18 gold badges85 silver badges140 bronze badges asked May 16, 2013 at 11:09 doniyordoniyor 37.9k61 gold badges181 silver badges270 bronze badges 2- How are you getting this list? is it a php var on your php page? – slinky2000 Commented May 16, 2013 at 11:11
-
Please don't use
for .. in
with arrays. – Yoshi Commented May 16, 2013 at 11:17
5 Answers
Reset to default 3If it's a var on your php page something like this would work
for (var i in <?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>) {
$('#cities').append('<option>'+ i +'</option>');
}
It seems that you don't have a list, you have a string. So first, parse that string:
var list = JSON.parse('["Ak-Bulak","Balykchy","Batken"]')
And then, loop over it as you already did, or without using keys:
for (var i=0; i<list.length; i++) {
$('#cities').append('<option>'+ data[i] +'</option>');
}
You need to parse this string as JSON first.
var buffer = eval(data)
for (var i in buffer) {
$('#cities').append('<option>'+ buffer[i] +'</option>');
}
But if you use eval() you must be sure that input data is consistent. updated.
Try this,
var data='["Ak-Bulak","Balykchy","Batken"]';
data=JSON.parse(data);
for (var i in data) {
$('#cities').append('<option>'+ data[i] +'</option>');
}
What about:
var data=<?php echo '["Ak-Bulak","Balykchy","Batken"]'; ?>;
for (var i in data) {
$('#cities').append('<option>'+ data[i] +'</option>');
}