2017-05-29 1 views
0

Je souhaite afficher Menu à partir de l'API en utilisant ul et li, mais la réponse ajax n'est pas ajoutée dans le li. Merci de m'aider.La réponse de l'API JSON n'est pas ajoutée dans l'attribut li

Voici mon Html

@{ 
    ViewData["Title"] = "Home Page"; 
} 
<script src="~/lib/jquery/dist/jquery.min.js"></script> 
<div id="demo"> 
    <ul><li id="results"></li></ul> 
</div> 

Voici mon script.

<script> 
    $.ajax({ 
     url: "http://any-url", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     data: JSON.stringify({ "ProjectId": "1" }), 
     success: function (response) { 
      var title = +response.ParentList; 
      console.log(response); 
      $.each(response, function() { 

       $("#results").append(title.Name); 
      }) 

     }, 
     error: function (status) 
     { 
      console.log(status.statusText); 

     } 
    }); 
</script> 

Et ceci est une réponse Ajax dans ma fenêtre de console.

Object {Message: "Successfully", Status: "OK", Parentlist: Array(10)} 
Message:"Successfully" 
Parentlist:Array(10) 
0:Object 
1:Object 

Parentlist:Array(10) 
0:Object 
    Child:Array(0) 
    DisplayOrder:"-8" 
    Id:"1012" 
    Name:"Mysorie Chif 
+0

ce que vous voyez dans la console? – guradio

+0

Pourquoi utilisez-vous '= +' dans var title = + response.ParentList; ' –

+0

Pourriez-vous ajouter la réponse de' console.log (réponse) ' –

Répondre

1

Essayez cette

success: function (response) { 
     $.each(response.ParentList, function() { 
      $("#demo ul").append('<li>'+this.Name+'</li>'); 
     }) 
    }, 
+0

merci cela fonctionne bien. –

0

HTML:

@{ 
    ViewData["Title"] = "Home Page"; 
} 
<script src="~/lib/jquery/dist/jquery.min.js"></script> 
<div id="demo"> 
    <ul><li class="results"></li></ul> 
</div> 

Script:

<script> 
    $.ajax({ 
     url: "http://any-url", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     data: JSON.stringify({ "ProjectId": "1" }), 
     success: function (response) { 
      var title = +response.ParentList; 
      console.log(response); 
      $.each(response, function() { 

       $("#demo ul").append(title.Name); 
      }) 

     }, 
     error: function (status) 
     { 
      console.log(status.statusText); 

     } 
    }); 
</script> 
+0

Qu'avez-vous changé? C'est toujours une bonne idée d'inclure quelques mots sur la réponse que vous fournissez –

+0

$ ("# demo ul"). Append (title.Name); Vous ajoutez le code dans la balise li. Mais nous le voulons dans l'ul tag et répète le li. –

+0

Est-ce que 'title.Name' dans ce cas ne montrerait pas le même nom dans chaque' each'? –

0

Je suppose que votre appel ajax retourne un tableau (plus d'informations sur ce pourrait soyez les bienvenus).

Voici comment itérer sur les éléments de réponse et ajouter une nouvelle LI pour chaque:

function onSuccess(response){ 
    $.each(response, function (index, item) { 
    $("#resultRoot").append('<li>'+item.Name+'</li>'); 
    }) 
} 

Pour cela au travail, vous devez pointer vers l'étiquette UL (pas la LI):

<div id="demo"> 
    <ul id="resultRoot"></ul> 
</div> 

Et je quitte l'Ajax est, simplement appeler la fonction onSuccess:

$.ajax({ 
    url: "http://any-url", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    type: "POST", 
    data: JSON.stringify({ "ProjectId": "1" }), 
    success: onSuccess, 
    error: function (status) 
    { 
     console.log(status.statusText); 
    } 
}); 
0

J'utiliser cette ligne $("#demo ul").append('<li>' + this.ParentList.Name + '</li>');

Cela append un li et en utilisant this.ParentList.name vous devriez obtenir la valeur du nom du courant response

$.ajax({ 
 
    url: "http://any-url", 
 
    dataType: "json", 
 
    contentType: "application/json; charset=utf-8", 
 
    type: "POST", 
 
    data: JSON.stringify({ 
 
    "ProjectId": "1" 
 
    }), 
 
    success: function(response) { 
 
    console.log(response); 
 
    $.each(response, function() { 
 

 
     $("#demo ul").append('<li>' + this.ParentList.Name + '</li>'); 
 
    }) 
 

 
    }, 
 
    error: function(status) { 
 
    console.log(status.statusText); 
 

 
    } 
 
});