Php 在弹出式登录时验证Codeigniter表单
我想在弹出式登录窗口中使用CodeIgniter上的表单验证库,当出现错误时,我想在弹出式窗口中回显验证错误Php 在弹出式登录时验证Codeigniter表单,php,codeigniter,Php,Codeigniter,我想在弹出式登录窗口中使用CodeIgniter上的表单验证库,当出现错误时,我想在弹出式窗口中回显验证错误 if ($this->form_validation->run()==FALSE){ $this->load->view("header"); $this->load->view("menu"); $this->load->view("content"); } 因为当错误发生时,视图将重新加载,弹出窗口将关闭 有没
if ($this->form_validation->run()==FALSE){
$this->load->view("header");
$this->load->view("menu");
$this->load->view("content");
}
因为当错误发生时,视图将重新加载,弹出窗口将关闭
有没有办法在出现错误时打开我的弹出窗口?只需使用jQuery.validate()并匹配同一组规则,您希望它的工作方式会太复杂。您必须提交表单,刷新页面,然后在出现错误时打开弹出窗口。有点。。。错
参考资料:对于表单验证的返回,您可以执行以下操作:
$this->output->set_output(json_encode([
'result' => 0,
'error' => $this->form_validation->error_array()
]));
return false;
}
<!-- Javascript POST -->
<script type="text/javascript">
$(function() {
$("#login_error").hide();
// Check the login form, so your form name may vary
$("#login_form").submit(function(evt) {
evt.preventDefault();
var url = $(this).attr('action');
var postData = $(this).serialize();
// Grab the post data
$.post(url, postData, function(o) {
if (o.result == 1) {
// Redirect for successful loging
window.location.href = '<?=site_url('pageheretogoto')?>';
} else {
$("#login_error").show(); // Show your popup window, I'm showing a div here of #login-error
var output = '<ul>'; // Format the output into a list
for (var key in o.error) {
var value = o.error[key];
output += '<li>' + value + '</li>';
}
output += '</ul>';
$("#login").html(output); // Modify the html output for the #login div which you would probably change it to your pop-up.
}
}, 'json');
});
});
</script>
它将返回您的需求以及错误,然后在jQuery中执行如下操作:
$this->output->set_output(json_encode([
'result' => 0,
'error' => $this->form_validation->error_array()
]));
return false;
}
<!-- Javascript POST -->
<script type="text/javascript">
$(function() {
$("#login_error").hide();
// Check the login form, so your form name may vary
$("#login_form").submit(function(evt) {
evt.preventDefault();
var url = $(this).attr('action');
var postData = $(this).serialize();
// Grab the post data
$.post(url, postData, function(o) {
if (o.result == 1) {
// Redirect for successful loging
window.location.href = '<?=site_url('pageheretogoto')?>';
} else {
$("#login_error").show(); // Show your popup window, I'm showing a div here of #login-error
var output = '<ul>'; // Format the output into a list
for (var key in o.error) {
var value = o.error[key];
output += '<li>' + value + '</li>';
}
output += '</ul>';
$("#login").html(output); // Modify the html output for the #login div which you would probably change it to your pop-up.
}
}, 'json');
});
});
</script>
$(函数(){
$(“#登录错误”).hide();
//检查登录表单,因此表单名称可能会有所不同
$(“#登录表格”)。提交(功能(evt){
evt.preventDefault();
var url=$(this.attr('action');
var postData=$(this.serialize();
//获取post数据
$.post(url、postData、函数(o){
如果(o.result==1){
//重定向以成功登录
window.location.href='';
}否则{
$(“#登录错误”).show();//显示您的弹出窗口,我在这里显示一个#登录错误的div
var output='';//将输出格式化为列表
for(o.error中的var键){
var值=o.错误[键];
输出+='- '+值+'
';
}
输出+='
';
$(“#login”).html(输出);//修改#login div的html输出,您可能会将其更改为弹出窗口。
}
}“json”);
});
});
您需要确保修改div名称,但这将为您提供一个很好的起点:1)无需页面刷新,2)将内容放置在您想要的位置。该示例没有使用弹出窗口或模式框,但您可以轻松地对其进行调整。非常感谢,我将立即尝试您的建议!