0

我正在学习一起使用 javascript、ajax、python 和 django。

在我的项目中,用户从下拉列表中选择一种语言。然后将所选内容发送回服务器。然后服务器将响应发送回 django 模板。这是由 javascript 完成的。在 django 模板中,我需要响应(例如德语)来更新 html 代码。如何将响应传递给 html 代码。响应可以在......的范围内看到。

如何在不重新加载html页面的情况下做到这一点?

谢谢。

4

2 回答 2

4

您可以使用 jquery 发送 ajax 请求,服务器可以发送带有 html 内容的响应。例如,

服务器:当服务器收到 ajax 请求时。这将返回 html 内容,即可以通过 ajax 呈现给客户端的模板

def update_html_on_client(request):
    language = request.GET.get('language', None)
    #for selected language do something
    cal_1 = ...
    return render_to_response('my_template.html', {'cal':cal_1}, content_instance = template.RequestContent(request))

模板:这是用于生成 ajax 请求的 ajax 函数示例。您可以选择可以填充服务器返回的 html 响应的 div。

function getServerResponse(){
$.ajax({
  url: 'your_url_here',
  data: {language:'German'},
  dataType:'html'
  success : function(data, status, xhr){
               $('#server_response').html(data);
             }
});
}
于 2012-11-12T20:27:05.623 回答
0

因为您的模板是在服务器上呈现的,所以最好的办法是简单地重新加载页面(这会使用您新选择的语言重新呈现页面)。

使用 ajax 的替代方法是将语言存储在 cookie 中,这样您就不必在客户端上维护状态。无论哪种方式,重新加载仍然是必要的。

您可以调查客户端模板。车把是个不错的选择。

于 2012-11-12T19:50:08.880 回答