在当前弹出窗口中显示错误消息(从数据库中获取记录)
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">×</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); `以上是关于在当前弹出窗口中显示错误消息(从数据库中获取记录)的主要内容,如果未能解决你的问题,请参考以下文章
在 jQuery 弹出窗口或 MVC 4 的警报中显示错误消息