私は ajax を使用して関数に移動し、値がデータベースに既に存在するかどうかを確認しています。データが既に存在する場合は、正常に機能している jQuery ダイアログを表示しますが、値がまだ存在しない場合は、ポップアップを表示してページ全体を更新したくありません。これが私のAJAX関数です:
function copyFile(val) {
var choices = document.getElementsByName("choice_shard_with_me").value;
var file_owner = document.getElementById('username').value;
$.ajax({
type: "GET",
url: "/copy_file/",
data: {choices:choices, file_owner:file_owner},
success: function(data){
$('#dialog-confirm').html(data)
}
});
}
私のDjangoビュー:
if request.GET:
choices = request.GET.getlist('choice_shard_with_me')
file_owner = request.GET.getlist('username')
#Test if the file already exist in the user share directory
x = [File.objects.filter(user_id=request.user.id, file_name=i, flag='A').values_list('file_name') for i in choices]
y = [y[0] for y in x[0]]
if len(y) > 1:
return render_to_response('copyexist.html', {'file':y}, context_instance=RequestContext(request))
//doesn't refresh the whole page show the popup.
else:
//refresh whole page and do something
私の質問は次のとおりです。ポップアップが表示されると、divでAjaxを使用して表示されます。コピーされたelseステートメントファイルに入ると、小さなdiv自体に成功メッセージが表示されます(ここでページ全体を更新したい)。