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 に答える