For adding a handful of options in a select performance is almost
irrelevant, it's more than fast enough. You can improve code
readability and performance (a bit) using the Option constructor:

$.post('/path/to/json.php', {params: 'xxx'}, function(data){

   var $select = $('#mySelectBox');

   $.each(data, function(){
       $select.append( new Option(this.State.name, this.State.name) );
   });

}, 'json');

On Jun 26, 2:56 pm, Alexandre Magno <alexan...@gmail.com> wrote:
> Hello,
>
> Yeah, thats right, the code works but it's too heavy
>
> You should concatenate one string with all option and then make a
> append. A append inside the loop would break the perfomance:
>
> > $.post('/path/to/json.php', {params: 'go here, if you need them'},
> > function(data){
> >     // "data" contains that JSON object you described
>
> >    // Also, I'm assuming your select box looks something like this:
> >    // <select id="mySelectBox"></select>
> >    var select = $('#mySelectBox');
> >    var options;
> >    if (data.length) $.each(data, function(){
> >     options += '<option 
> > value="'+this.State.name+'">'+this.State.name+'</option>';
> >    })
> >    $(options).appendTo( select );
>
> > }, 'json');
>
> Reference:http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-cor...
>
> Regards,
>
> Alexandre Magno
> Interface Developerhttp://blog.alexandremagno.net
>
> On Jun 26, 11:59 am, Eric Garside <gars...@gmail.com> wrote:
>
> > Well, lets assume you're getting the JSON you described from the
> > following ajax call:
>
> > $.post('/path/to/json.php', {params: 'go here, if you need them'},
> > function(data){
> >     // "data" contains that JSON object you described
>
> >    // Also, I'm assuming your select box looks something like this:
> >    // <select id="mySelectBox"></select>
> >    var select = $('#mySelectBox');
> >    if (data.length) $.each(data, function(){
> >        $( '<option value="' + this.State.name + '">' + this.State.name
> > + '</option>').appendTo( select );
> >    })
>
> > }, 'json');
>
> > On Jun 26, 6:46 am, liaogz82 <liaog...@gmail.com> wrote:
>
> > > Hi all,
>
> > > I have this JSON file that does the encoding from the states database.
> > > I want to extract it out using jquery and populate the select drop
> > > down box. the json file is being encoded in this way:
>
> > > [
> > > {"State":{"name":"AUSTRALIA CAPITAL TERRITORY"}},
> > > {"State":{"name":"NEW SOUTH WALES"}},
> > > {"State":{"name":"NORTHERN TERRITORY"}},
> > > {"State":{"name":"QUEENSLAND"}},
> > > {"State":{"name":"SOUTH AUSTRALIA"}},
> > > {"State":{"name":"TASMANIA"}},
> > > {"State":{"name":"VICTORIA"}},
> > > {"State":{"name":"Western Australia"}}
> > > ]
>
> > > not very sure how to extract out the values. Please help me. Thanks!

Reply via email to