• 12-04-2020, 22:08:13
    #1
    Selamlar,

    Django'da bir konuda takıldım, Ajax bilgim pek olmadığı için de işin içinden çıkamadım.

    Kısaca yapmak istediğim;

    örneğin a.html dosyasındaki bir div'i b.html içindeki bir div e almak istiyorum.

    a.html içerisinde şu şekilde çalışan bir for döngüsü var ve sayfa içine girince gayet düzgün çalışıyor - 10-15 tane sonuç çıkartıyor

    {% for polls in poll %}
    <div class="copythisdiv" id="copythisdiv">
       <ul>
             <li> {{*post.title }} </li>
       </ul>
    </div>
    {% endfor %}
    b.html sayfasında a.html den bilgileri çekmek içinse şu kodu kullanıyorum;

    script type="text/javascript">
    window.setTimeout(ajaxCall);
    
    function ajaxCall() {
       $.ajax({
           cache: true,
           url: "sayfa/a",
           dataType: "html",
          success: function (data) {
                var html2 = $(data).find(".takeleft").html();
                $(".pastedivhere").html(html2);
        },
        error: function (request, ajaxOptions, thrownError) {
    
         }
       });
    }
    </script>
    
    <div class="pastedivhere">
    
    </div>
    bu şekilde yapınca for döngüsündeki ilk satırı çekiyor fakat diğer satırlar gelmiyor.

    ücretli ya da ücretsiz yardımlarınızı bekliyorum.

    şimdiden teşekkür ederim.
  • 12-04-2020, 22:38:47
    #2
    script type="text/javascript">
    window.setTimeout(ajaxCall);
     
    function ajaxCall() {
       $.ajax({
           cache: true,
           url: "poll/daily",
           dataType: "html",
          success: function (data) {
                $(".pastedivhere").html(data);
        },
        error: function (request, ajaxOptions, thrownError) {
     
         }
       });
    }
    </script>
     
    <div class="pastedivhere">
     
    </div>
    o sayfayı direkt pastedivhere class'ı içine koymak istiyorsunuz galiba anladığım kadarıyla
  • 12-04-2020, 22:43:16
    #3
    nochs adlı üyeden alıntı: mesajı görüntüle
    script type="text/javascript">
    window.setTimeout(ajaxCall);
     
    function ajaxCall() {
       $.ajax({
           cache: true,
           url: "poll/daily",
           dataType: "html",
          success: function (data) {
                $(".pastedivhere").html(data);
        },
        error: function (request, ajaxOptions, thrownError) {
     
         }
       });
    }
    </script>
     
    <div class="pastedivhere">
     
    </div>
    o sayfayı direkt pastedivhere class'ı içine koymak istiyorsunuz galiba anladığım kadarıyla
    evet hocam o sayfada sadece bir div var zaten. copy isimli div'i paste isimli dive taşımak istiyorum. aslında taşıyor ama sadece 1 satır. for döngüsünün tamamını almıyor. sanırım bu şeklide yapınca for döngüsü çalışmıyor anlamadım.
    bu arada copy olan div sayfasına browserden gidince tüm satırlar geliyor yani düzgün çalışıyor. ama ajax ile içeri alınca sadece tek satırı alıyor.
  • 12-04-2020, 23:31:07
    #4
    Size attığım şekilde de mi olmadı hocam
  • 13-04-2020, 00:19:28
    #5
    nochs adlı üyeden alıntı: mesajı görüntüle
    Size attığım şekilde de mi olmadı hocam
    valla geldi hocam ya )

    ben alıntı yaptınız zannetmiştim yazdığınız koda bakmadım.

    hocam çok teşekkür ederim çok yardımcı oldu bu bana.

    birşey sormak istiyorum. kullandığım ajax scripti doğru bir yöntem midir?

    ben bunları butonlara bağlamak istiyorum ama.

    yani

    daybutonuna basınca /poll/daily
    week butonuna basınca /poll/week

    şeklinde olsun istiyorum. bu scripti nasıl butonlara bağlayabilirim? bir de dediğim gibi bu doğru bir yöntem midir ?

    amacım sayfa reflesh olmadan günlük-haftalık popüler yazıları getirmek

    tekrardan çok çok teşekkür ederim
  • 13-04-2020, 00:27:40
    #6
    $("#butonidsi").click(function() {
    
    * Ajax*veri get buraya
    
    });
    bu şekildebutonları tetikleyebilirsiniz butona basıldığında function içindeki kodları tetikler oraya da ajaxtan veri çekme kodunu yazarsınız
  • 13-04-2020, 00:33:32
    #7
    nochs adlı üyeden alıntı: mesajı görüntüle
    $("#butonidsi").click(function() {
    
    * Ajax*veri get buraya
    
    });
    bu şekildebutonları tetikleyebilirsiniz butona basıldığında function içindeki kodları tetikler oraya da ajaxtan veri çekme kodunu yazarsınız

    script type="text/javascript">                
    $("#butonidsi").click(function () {
                       window.setTimeout(ajaxCall);
                       function ajaxCall() {
                           $.ajax({
                               cache: true,
                               url: "poll/daily",
                               dataType: "html",
                               success: function (data) {
                                   $(".popular").html(data);
                               },
                               error: function (request, ajaxOptions, thrownError) {
                               }                        });
                       }
                   });
    </script>
    şu şekilde yaptım ama çalışmadı hocam. buton da şu şekilde;

    <button id="butonidsi" class="btn btn-info">{% trans "Daily" %}</button>
    muhtamalen script kısmında bir hata yapıyorum
  • 13-04-2020, 00:38:24
    #8
    $("#butonidsi").click(function() {
    $.ajax({
    cache: true,
    url: "poll/yearly",
    dataType: "html",
    success: function(data) {
    $(".popular").html(data);
    },
    error: function(request, ajaxOptions, thrownError) {}
    });
    });
  • 13-04-2020, 00:40:14
    #9
    nochs adlı üyeden alıntı: mesajı görüntüle
    $("#butonidsi").click(function() {
    $.ajax({
    cache: true,
    url: "poll/yearly",
    dataType: "html",
    success: function(data) {
    $(".popular").html(data);
    },
    error: function(request, ajaxOptions, thrownError) {}
    });
    });

    çok teşekkür ettim hocam, scripti butonun üstüne koymuşum o yüzden çalışmamış. çok işimi gördü müthişsiniz... son olarak bu doğru bir yöntemmidir hocam ? yani başka bir sayfadan bu şeklide veri çekmek doğru mudur ya da ?