最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - Access list element in javascript - Stack Overflow

programmeradmin1浏览0评论

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
Add a ment  | 

5 Answers 5

Reset to default 3

If 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>');
}
发布评论

评论列表(0)

  1. 暂无评论