2011-03-11 45 views
0

我正在尝试重新加载“下一页”而不重新加载整个页面。我只想要我的数据表进行更新。我发现这是用ajax完成的。在互联网上做了一些研究之后,我现在知道你的ajax/javascript会转到某个url,并且在django中,你将视图映射到那个url会返回新的数据。直到这一点,一切都清楚了。但现在我不得不做一些JavaScript来做到这一点,我完全失去了。使用DJANGO和AJAX刷新数据列表和页面数

这是DataList控件在我的模板

<div class="project-container"> 
    {% for project in pagination.projects %} 
     <div class="project"> 
      <h4 class="strong">{{ project.name }}</h4> 
      <div class="project-details-vars"> 
       <p>{{ project.info_veld_1 }}</p> 
       <p>{{ project.info_veld_2 }}</p> 
       <p>{{ project.info_veld_3 }}</p> 
       <p>{{ project.info_veld_4 }}</p> 
       <p>{{ project.info_veld_5 }}</p> 
      </div> 
     </div> 
    {% endfor %} 
</div> 

这是我的模板我的自定义分页程序。

<div id="paginator"> 
    {% if pagination.prevPage %} 
    <a href="/page/{{ pagination.prevPage }}"> 
     <img src="/static/images/arrow-left.png" /> 
    </a> 
    {% endif %} 
    {% if pagination.nextPage %} 
     <a href="/page/{{ pagination.nextPage }}"> 
      <img src="/static/images/arrow-right.png" /> 
     </a> 
    {% endif %} 
</div> 

可以some1请告诉我,在URL触发JavaScript和只刷新数据列表上的数据和更新的URL。

感谢提前:)

回答

0

有一个很好的javascript叫ajaxroutine。看到这个link。所有你需要做的就是下载脚本,使用

<script src="text/javascript" src="ajaxroutine.js"></script> 

然后你在你的HTML代码,其中"/Example"是您的网址,"name=George&age=27"是附加参数调用

ajaxpack.getAjaxRequest("/Example", "name=George&age=27", processGetPost, "txt") 

processGetPost是回调,一javascript函数将在你的代码中运行后,在响应和"txt"只是要知道,响应是在TXT格式(我认为它也可以在XML中,但老实说,我从来没有尝试过)。这个ajaxroutine对我很好。你应该试试。在我刚开始提到的链接中有更多的解释。

+0

这一切都很清楚,但我的主要问题是processGetPost我猜。如何让新的变量进入schreen ... – Stephan 2011-03-11 14:13:11

+0

那么,你不能使用django模板语言。您的回应必须将数据传递给processGetPost,并且在此函数中您必须手动创建html。我猜想一些硬核javascripting。我不知道另一种方式去做,对不起。 – freakish 2011-03-11 15:42:37