3つのチェックボックスを使用して検索結果をフィルタリングしたいと思います。結果はid=posts_results
ajaxで結果をフィルタリングするときのhtmlページの一部をロード
<div class="checkbox">
<label><input type="checkbox" id="id1" class="typePost" value="En groupe"> val1 </label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="id2" class="typePost" value="En groupe"> val2 </label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="id3" class="typePost" value="A domicile"> val3</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="id4" class="typePost" value="Par webcam"> val4</label>
</div>
<div id="posts_results">
{% include 'posts/posts_results.html' %}
</div>
<script>
$('.typePost').change(function (request, response) {
var v1=$('#id1').is(":checked")? 1:0;
var V2=$('#id2').is(":checked")? 1:0;
var V3=$('#id3').is(":checked")? 1:0;
var v4=$('#id4').is(":checked")? 1:0;
$.ajax({
url: '/posts/type_lesson/',
dataType: 'json',
type: "GET",
data: {
group: groupChecked,
webcam: webcamChecked,
home: homeChecked,
move: moveChecked,
distance: distance,
},
success: function (object_list) {
$('#posts_results').load("my_page.html", object_list);
alert('after')
}
});
});
<script>
でdivの中で提示され、これは私のURLです:
url(r'^filter/$', views.filter, name='filter_type_lesson'),
、これが私の見解です:
def filter(request):
if request.method=='GET':
#as an exemple I'll send all posts
data= PostFullSerializer(Post.objects.all(), many=True)
return JsonResponse(data.data, safe=False)
フィルタ機能に応じていくつかのフィルタをexcute jsonはデータを送信し、フィルタリングされた投稿をシリアル化して返信します(この場合はすべての投稿を送信します)。
結果は、idが "posts_results"のdivのforloopを使用して表示され、HTMLはファイルposts_results.htmlに表示されます。
JSONデータが送信されますが、AJAXの成功の機能が更新またはロードのdiv
をし、
'this' 'load()'の最初の引数が何であるべきかを示すURLではありません。 – charlietfl
私はそれを編集します。私はちょうどそれでテストしていましたが、それは問題ではありません – A2maridz