簡體   English   中英

如何在Django應用中更改DIV內容

[英]How to change DIV contents in django app

我想通過ajax GET方法用新內容替換DIV內容。 問題在於整個頁面正在加載到DIV中。 但是我只想加載新內容。

    function demoButton(){

        var forData = $('#For').text();
        var ageData = $('#Age').text();
        var occasionData = $('#Occasion').text();
        var URL ="http://127.0.0.1:8000/result/?age="+ ageData +"&occasion="+ occasionData +"&relationship="+ forData;

$.ajax({
    type: "GET",
    url: URL,
    success: function (response) {
        $("#testDIV").html(response);
    }
}); 
}

我的DIV塊是:

<div id="testDIV"> 
 <ul id="products">
 {% for deal in deals %}
  <li data-price="{{ deal.price }}" > 
   <div class="product" >
          <div class="inner"> 
           <a href="/dailydeals/{{ deal.id }}/"><img src="{{ STATIC_URL }}/images/cimages/{{ deal.image }}" alt="image" style='width:177px;height:175px;' /> </a>
            <div class="similarProd"><a href="#">View similar product</a></div>
            <div class="heart"><a href="/usersl/{{user.id}}/{{ deal.id }}"><span>Engraved plaque fsor your<br>

              girlfriend</span></a></div>

            <div class="quickView"><a href="#qv_form{{ deal.id }}" id="fb_pop">QUICK VIEW</a></div>
            <div class="socialMedia"><a href="#"> <img src="/static/images/like.jpg" alt="Like" /></a></div>
          </div>
          <div class="description" style='width:177px;height:50px;'> <span class="price">{{ deal.price }}</span> {{ deal.description|safe }} <br />
           </div>
           <a href="/usersl/">Add to SL</a>
        </div>
                     </li>
   {% endfor %}
  </ul> 

        </div>

我正在開發基於Django的電子商務應用程序。 我想用從服務器獲取的內容替換DIV的內容,以響應對服務器的GET請求。 但是問題是整個頁面都被加載到DIV中。

讓您的視圖僅返回適合您的div的HTML,而不是完整的頁面。

例如,如果僅打算從AJAX調用中使用您的http://127.0.0.1:8000/result/ URL,那么讓該URL的視圖僅呈現沒有HEAD,BODY標簽等的模板。

您可能有一個類似以下的模板:

<ul>
  <li>
    {{ object.value }}
  </li>
<ul>

請注意,它不會從base.html或任何其他模板擴展而來,因此在渲染模板時,僅渲染您指定的模板內容。 但是,沒有什么可以阻止用戶點擊您的URL,在這種情況下,返回的結果將不是在瀏覽器中顯示的有效HTML。

還有其他選擇。 您可以在AJAX響應中使用JSON從服務器提供數據,並從JSON數據構建DOM。 或者,您可以允許按原樣提供整個頁面,並使用jQuery將div的內容僅替換為返回頁面的一部分,如下所示:

$('#result-div').load(URL + ' #container-div');

jQuery load()函數允許您指定要插入到div中的已加載HTML的片段。 在上面的示例中,投放的HTML中的#container-div元素的內容將插入#result-div 投放的HTML的其余部分將被丟棄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM