如何解决使用ajax在发布数据中得到了意外结果
当我使用Ajax代码将数据发布到数据库时,得到了意外的结果。我可以发布数据,但输出显示错误。我的Ajax代码无法正确执行
views.py
def notification(request):
user = request.user
if request.method == 'POST':
property_id = request.POST['property_id']
owner = request.POST['owner_id']
property_object = Property.objects.get(id=property_id)
owner_object =User.objects.all().get(username=owner)
notification = "Hi {},{} \n have interested
in your property '{}'".format(property_object.owner,user.first_name,property_object.headline)
property_object.notify.add(user)
notifications = Notifications.objects.create(notification=notification,property=property_object,owner=owner_object)
notifications.save()
return JsonResponse({"msg":"success"})
ajax代码
<form action="{% url 'notification' %}" method="post" id="notify_form" >
{% csrf_token %}
<input type="hidden" name="owner_id" value="{{ accomodation.owner }}">
<button type="buttonsn" id="request-btn" name="property_id" value="{{ accomodation.id }}" class="btn btn-primary">Contact info:</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$(document).ready(function(e){
$(document).on('submit','#request-btn',function(e){
e.preventDefault();
var property_id = $this.attr('value');
var owner_id = $this.attr('value');
$.ajax({
type:'POST',url:"{% url 'notification' %}",data:$('#notify_form').serialize(),dataType:'Json',success:function(data){
if(data.msg == "success"){
alert('data submitted')
}
}
});
});
});
我期待成功警报框,但是得到
{"msg": "success"}
在“ httpResponse”之类的白色窗口中。 Ajax代码不起作用
为了克服,我尝试在mycode中进行一些更改 我从表格中删除了行动地址
<form action="" method="post" id="notify_form" >
但此时间无效,未提交表单 我该怎么办
解决方法
您要将事件处理程序附加到按钮:
$(document).on('submit','#request-btn',function(e){
但是按钮没有提交事件,表单没有。您可以将其附加到以下表单:
$(document).on('submit','#notify_form',function(e){
或改为使用按钮的点击事件:
$(document).on('click',function(e){
还要注意,type
元素的<button>
属性中有一个错字。应该是:
type="button"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。