在当前弹出窗口中显示错误消息(从数据库中获取记录)

Posted

技术标签:

【中文标题】在当前弹出窗口中显示错误消息(从数据库中获取记录)【英文标题】:display error message in current popup (fetching record from db) 【发布时间】:2018-09-15 03:25:43 【问题描述】:

我想在我当前的弹出页面进入otp页面弹出之前检查手机号码是否注册。

我的控制器

        public function VerificationOTP() 
        $postData = $this->input->post();
        if (isset($postData) && !empty($postData)) 
            $this->load->model('DoctorSearch');

            $exest = $this->DoctorSearch->checkPhoneNumber($postData,3);
            $data['mobileNumber'] = $this->input->post('mobileNumber');
            $data['loginOTP'] = ($this->input->post('loginOTP'))?$this->input->post('loginOTP'):'0';
            if ($exest['success']) 
                $data['mobilePrefix'] = $exest['mobilePrefix'];
                     $this->session->set_userdata('patmob',$exest['mobileNumber']);
                $this->session->set_userdata('patmobp',$exest['mobilePrefix']);
                $this->session->set_userdata('paturef',$exest['userRef']);

                $this->load->view('pages/otp',$data);

             else 
        $msg = '<div class="alert alert-danger">';
                $msg .= 'Please Enter Registered Mobile Number';
                $msg .= '</div>';
                $this->session->set_flashdata("message", $msg);

                //$this->session->set_flashdata("message", '');
                redirect('verify-mobilenumber');
            
        



My script in view page;


              $(document).ready(function () 
            $("#submit").click(function () 
        var mobileNumber = $("#mobileNumber").val();
        $("form[name='mobnumber']").validate(
            rules: 
                mobileNumber: 
                    required: true
                ,
            ,
            messages: 
                mobileNumber: 
                    required: "Enter Mobile Number"
                ,
            ,
            submitHandler: function (form) 
                $.ajax(
                    type: "POST",
                    url: "<?php echo base_url('verify-mobilenumber'); ?>",
                    data: mobileNumber: mobileNumber,
                    success: function (result) 
                    if(result)
                     $("#enter-otp").modal('show');
                     $("#ver-num").html(mobileNumber);

                    
                    
                );
            
        );

    );

);

在给定注册号码之前,我不想打开#enter-otp 弹出窗口。我想显示控制器 $msg .= '请输入注册的手机号码';在我当前的弹出窗口中作为失败消息

【问题讨论】:

检查两种情况下返回的结果,然后检查 if (result == (未输入电话号码时的结果)) else show popup 如何在弹出窗口中显示错误消息(从控制器获取) 你可以使用 alert(result); 【参考方案1】:

您需要像这样在 $.ajax 提交中添加 dataType

在您的视图文件中

    <div class="modal fade" id="enter-otp" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-md">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Error</h4>
            </div>
            <div id="OptBody" class="text-center">
            </div>
        </div>
    </div>
</div>
    <script>
    $.ajax(
           type: "POST",
           url: "<?php echo base_url('verify-mobilenumber'); ?>",
           data: mobileNumber: mobileNumber,
           dataType: "json",
           success: function (result) 
             if(result.errors)
                $("#enter-otp").modal('show');
                $('#OptBody').append(result.errors);
                $("#ver-num").html(mobileNumber);
             
           
        );
    </script>

在您的控制器文件中,创建一个空数组来保存您要返回的数据并执行 json_encode 以便能够将其返回。

public function VerificationOTP() 

    $data = array('errors' => NULL);
    $postData = $this->input->post();
    if (isset($postData) && !empty($postData)) 
        $this->load->model('DoctorSearch');

        $exest = $this->DoctorSearch->checkPhoneNumber($postData,3);
        $data['mobileNumber'] = $this->input->post('mobileNumber');
        $data['loginOTP'] = ($this->input->post('loginOTP'))?$this->input->post('loginOTP'):'0';

        if ($exest['success']) 
            $data['mobilePrefix'] = $exest['mobilePrefix'];
            $this->session->set_userdata('patmob',$exest['mobileNumber']);
            $this->session->set_userdata('patmobp',$exest['mobilePrefix']);
            $this->session->set_userdata('paturef',$exest['userRef']);

            $this->load->view('pages/otp',$data);

         else 
            $data['errors'] = "<p>Please Enter Registered Mobile Number</p>";
            //$this->session->set_flashdata("message", '');
            //redirect('verify-mobilenumber');
        
    
    echo json_encode($data);

【讨论】:

但是如何在弹出窗口中显示? @瑞安 如果您查看控制器,我创建了一个数组 $data,其键为 'errors',值为 'message'。因此,在您的 ajax 请求中,检查 $data['errors'] 是否与 result.errors 一起存在。如果是,那么您可以像这样显示它 ` $('#modalBody').append(result.errors); `

以上是关于在当前弹出窗口中显示错误消息(从数据库中获取记录)的主要内容,如果未能解决你的问题,请参考以下文章

显示从 parse.com 获取的解析通知作为弹出窗口

在 jQuery 弹出窗口或 MVC 4 的警报中显示错误消息

Parsley js:如何验证模态弹出窗口内的输入字段并在模态本身内显示错误消息

在弹出的 Laravel 中显示个人记录

是否有任何解决方案可以显示从弹出窗口到选择字段的选定记录

窗口消息框中的 C# WPF XAML