HTML ファイルに選択タグがあります。ユーザーが自分の選択を変更したときに、ajax を使用する必要があるページが、ユーザーの選択の値を views.py 関数に送信し、この値でページを再作成します。私のhtmlコード:
<div id="response>
<select name="page_length_name" id="page_length_id">
<option id="opt1">10</option>
<option id="opt2">20</option>
<option id="opt3">30</option>
<option id="opt4">40</option>
</select>
//here is a table
</div>
(この選択タグは形式ではありません)。ユーザーがデータを変更するまで修正してほしい。だから私はクッキーを使わなければならないと思う。selectがフォームにないのに、このような関数を使用できるかどうかわかりませんか?「POST」メソッドにする必要がありますか?投稿はフォームでのみ使用できますか? はいの場合、データ(選択タグ)をサーバーに送信するにはどうすればよいですか?
$(function() {
$('#page_length_id').change(function() {
temp = ["page_length_id"].options[selectedIndex].value;
$.ajax({
type: "POST",
data: temp,
url: 'backup/',
success: function(data) {
alert("success");
$("#response").html(data);
}
});
})
また、この選択値をクッキーに強制するにはどうすればよいですか? views.py のこのコード行だけで十分ですか?:
table_length = request.COOKIES.get('table_length')
ここに私のviews.pyがあります:
def backup(request):
if request.is_ajax():
try:
table_length = request.COOKIES.get('table_length')
except Exception:
table_length = 10
if not page_length:
table_length = 10
//here i create the page with xsl and send it to a page to be shown
result = style.applyStylesheet(doc)
out = style.saveResultToString( result )
ok = mark_safe(out)
style.freeStylesheet()
doc.freeDoc()
result.freeDoc()
if request.method == 'POST':
return HttpResponse(ok)
else:
return render_to_response("show.html", {
'str': ok,
}, context_instance=RequestContext(request))
ありがとうございました。