Ajax ham html gönderme

Arkadaşlar merhabalar,
Ajax ile serverdan başarıyla dönen ve içerisin de html taglı değeri bulunan metnin, html etiketlerini metin olarak değilde normal bir html etiketiymiş gibi sayfaya yerleştirmenin yolunu aramaktayım, fikri olan paylaşırsa çok sevinirim.
Örneğin dönen değer;

<p id="test">This is some <b>bold</b> text in a paragraph.</p>

bu olsun, buradaki etiketleri metin olarak değil de normal bir sayfa da html yazmışız gibi algılansın, görünmesin; ama işlevi aynen etiketlerin devam etsin istiyorum. jquery kütüphanesinden bir çözüm bulunursa çok daha iyi olur benim için.

jquery html methodunu kullanabilirsin.

Büyük ihtimalle sorun sunucu tarafında. Ajax kullanmadım ancak django ile yaptığım sitede bu tarz bir sorunla karşılaşmıştım. Yapmanız gereken sunucudan giden veriyi ham yani hiçbir şekilde değiştirilmeyecek şekilde gönderilmesini sağlayın.

@smhgk @hasser destekleriniz için çok teşekkür ederim. Sorunu çözdüm :slight_smile: Aslında konu Serdar Bey 'in tam da tahmin ettiği gibi Django 'dan dönderdiğim html içerikli kod sebebiyleydi ve @smhgk 'nın da önerdiği güzel yöntemle yapmaya çalıştım ama benim özel kdoum sebebiyle bu yöntemin kullanımı için çok fazla javascript kodu yazmam gerekti.Yaptığım şey django-haystack ile aramadan dönen değeri highlight 'ı view içinde kullandığımdan html içerikli obje dönmekteydi ben de view da highlight kullanmaktan vazgeçtim(Serdar Bey’i dinledim :slight_smile: )ve template de script kodumun içinde jquery-ui autocomplete kullandım, kodlarım aşağıdaki gibi, jquery-ui autocomplete kullanacak arkadaş olursa belki bir gün faydasını görür, paylaşayım :slight_smile:

<script type="text/javascript">
    $(function(){
      $("#id_q").autocomplete({
        minLength:3,
        source: function(req, add){
          var search=$("#id_q").val();
          var radioValue = $("input[name='whichsearch']:checked").val();
          $.ajax({
            url:'/search/autocomplete?q=',
            async:false,
            dataType:'json',
            type:'POST',
            data:{ 
              q: search,
              whichsearch: radioValue,
              csrfmiddlewaretoken: '{{ csrf_token }}'
              },
            success: function(data){
              var suggestions=[];

              $.each(data, function(index, objeto){
                suggestions.push(objeto); 
              });

              add(suggestions);
            },
            error:function(err){
              alert("error");
            }
          });
        }
      })
      .data( "uiAutocomplete" )._renderItem = function( ul, item ) {
        var t = String(item.value).replace(
                new RegExp(this.term, "gi"),
                "<span class='ui-state-highlight'>$&</span>");
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + t +"</a>" )
            .appendTo( ul );
    };
    });
  </script>
1 Beğeni

Ajax bilmememden ötürü kodunuzu pek anlamadım ancak Django’da template içinde kullanılan bir safe etiketiyle ham html çıktısı elde edilebiliyor.

Aslında aklıma gelmedi değil ama javascript içinde templatetag kullanımının işe yaramayacağını okudum, hiç denemedim o yöntemi o yüzden ama hatırlatman için çok teşekkürler.

1 Beğeni