28.机构模块——用户咨询功能ajax实现

#operations/urls.py
from django.conf.urls import url
from .views import user_ask
urlpatterns = [
    url(r'^user_ask$',user_ask,name='user_ask'),
]
#operations/views.py
from django.http import JsonResponse
from django.shortcuts import render
# Create your views here.
from operations.forms import UserAskForm


def user_ask(request):
    user_ask_form = UserAskForm(request.POST)
    if user_ask_form.is_valid():
        user_ask_form.save(commit=True)
        # name = user_ask_form.cleaned_data['name']
        # phone = user_ask_form.cleaned_data['phone']
        # course = user_ask_form.cleaned_data['course']
        #
        # a = UserAsk()
        # a.name = name
        # a.phone = phone
        # a.course = course
        # a.save()
        return JsonResponse({'status': 'ok', 'msg': '咨询成功'})
    else:
        return JsonResponse({'status': 'fail', 'msg': '咨询失败'})
#operations/forms.py
from django import forms
from .models import UserAsk
import re
class UserAskForm(forms.ModelForm):
    class Meta:
        model = UserAsk
        fields = ['name','course','phone']

ModelForm很重要 


{% block myjs %}
    <script>
        $(function () {
            $('#jsStayBtn').click(function () {
                {# 如果拿的是非表单类元素的值,用text(),如果是表单类元素用val() #}
                var name = $('#companyName').val();
                var phone = $('#companyMobile').val();
                var course = $('#companyAddress').val();
                $.ajax({
                    type:'POST',
                    url:'{% url 'operations:user_ask' %}',
                    data:{
                        "name":name,
                        "phone":phone,
                        "course":course,
                        "csrfmiddlewaretoken":'{{ csrf_token }}'
                    },
                    success:function (callback) {
                        if(callback.status == 'ok'){
                            alert(callback.msg);
                            $('#companyName').val('');
                            $('#companyMobile').val('');
                            $('#companyAddress').val('');
                            $('#jsCompanyTips').text('')
                        }else {
                            alert(callback.msg);
                            $('#jsCompanyTips').text(callback.msg)

                        }
                    }
                });
                {# 如果你不想让submit有提交的动作,那么就需要在事件函数的最后返回false,阻止提交动作的发生 #}
                return false;
            })
        })
    </script>
{% endblock %}

猜你喜欢

转载自blog.csdn.net/qq_36227329/article/details/89424712
今日推荐