2014-01-03 3 views
0

Я получаю данные через ajax с URL-адреса как JSON. данные находятся в символах UTF-8 (символы языка Urdu). они идут нормально, и их можно увидеть отлично, если они отображаются в окне предупреждения. но когда они добавляются к тегу с использованием jquery, теги остаются пустыми. код выглядит следующим образом:данные не добавляются с jquery

основной раздел тег:

<section class="row" id="news_detail"> 
    <img src="../images/loading.gif" alt="loading" id="loadingimg" class="img-responsive center-block" style="width: 300px; height: auto;" /> 

</section> <!--loading img--> 

код Ajax:

$(document).ready(function(){ 

    var id = getParameterByName('id'); 

    $.ajax({ 
     url: 'http://localhost/drupal/get/news', 
     type: 'GET', 
     dataType: 'json', 
     crossDomain: true, 
     success: function(data){ 

      $("#loadingimg").hide(); 

      if(data.status == true) 
      { 
       var titletag = $("<p>").addClass("article_title").append(this.title); 

       var img = $("<img>").addClass("img-responsive center-block summary-image").attr("src", this.image_url).attr('alt',this.title); 

       var p = $("<p>").addClass("article_body").html(this.body); 
        // alert(data.body); 

       $(titletag).appendTo($("#news_detail")); 
       $(img).appendTo($("#news_detail")); 
       $(p).appendTo($("#news_detail")); 
      } 
      else if(data.status == false) 
      { 
       alert("The selected article could not be loaded. please try later"); 
      } 

      $("#news_detail").append($("<div>").addClass("clear").html("&nbsp;")); 
     }, 
     error: function() 
     { 
      $("#loadingimg").hide(); 
      alert("An error occured while retrieving the article. please try later"); 
     } 
    }); 

}); 

, как сказано, JSON приходит штраф, и можно увидеть в окне предупреждения (данные в основном относятся к кодам UTF-8 языка URDU). Однако, для уточнения, то strcture из JSON выглядит следующим образом:

{"status": true, "title": "abc", "image_url": "abc.jpg", "body": "text" } 

динамические теги добавляются к DOM, но без каких-либо данных (т.е. пустой)

ответ

0

Вы ссылки this в вашем успехе обратного вызова, но это должно быть data. Я считаю, this в этом контексте относится к глобальному объекту, поэтому this.title и this.body являются неопределенными и, следовательно, пустыми значениями.

+0

благодарю вас за ответ. оно работает. Еще одна потеря кода копирования :). код был фактически скопирован из другого вызова ajax, возвращающего массив, и я проходил его с помощью функции 'data.each', поэтому он использовал' this'. Еще раз спасибо .. маленькая вещь не пришла в голову :) –

Смежные вопросы