2011-06-05 7 views
3

J'ai cherché une solution à ce qui semble être un problème simple, mais je suis incapable de trouver la solution ... toute directive serait appréciée.Remplir la liste de sélection de JSON

Je tente de construire une boîte de sélection en utilisant l'objet JSON récupéré à partir d'un script PHP. Le script PHP (versions.php) exécute une requête sur une table de base de données; code est le suivant:

$posts = array(); 
if(mssql_num_rows($result)) { 
    while($post = mssql_fetch_assoc($result)) { 
    $posts[] = $post; 
    } 
} 
header('Content-type: application/json'); 
echo json_encode($posts); 

... et retourne la structure JSON suivante:

[{ "version": "3.3.0"}, { "version": "1.5.0"} ]

le fichier PHP est appelé à partir d'un fichier central de JS, qui est structuré comme suit:

jQuery(function($){ 
    $.getJSON('versions.php', function(data) { 
     var select = $('#release-list'); 
     $.each(data, function(key, val){ 
      var option = $('<option/>'); 
      option.attr('value', val) 
        .html(data) 
        .appendTo(select); 
     }); 
    }); 
}); 

regardant firebug, je vois des listes d'objets, mais pas les valeurs du tableau. Je suppose que cela est lié au code dans le fichier javascript ci-dessus - je ne sais pas comment accéder aux valeurs de l'objet json.

Merci d'avance.

Répondre

4

Vous y êtes presque. Basé sur votre structure JSON, il devrait ressembler à quelque chose comme ceci:

jQuery(function($){ 
    $.getJSON('versions.php', function(data) { 
     var select = $('#release-list'); 
     $.each(data, function(key, val){ 
      $('<option/>').attr('value', val.version) 
        .html('version ' + val.version) 
        .appendTo(select); 
     }); 
    }); 
}); 
+0

Merci beaucoup Stephen - travaillé parfaitement! – user778444

Questions connexes