Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将AJAX请求与CodeIgniter表单一起使用_Php_Ajax_Codeigniter_Validation - Fatal编程技术网

Php 将AJAX请求与CodeIgniter表单一起使用

Php 将AJAX请求与CodeIgniter表单一起使用,php,ajax,codeigniter,validation,Php,Ajax,Codeigniter,Validation,我在结合CodeIgniter和AJAX时遇到了麻烦。我有一张报名表。我想要的是,当用户点击我主页上的注册按钮时,他会在弹出窗口中得到一个注册表单。如果他在表单中输入了错误的详细信息,弹出窗口本身会提示他您的详细信息无效,他不得重定向到新页面以显示错误。所以我使用bpopup来弹出表单和ajax请求,但是我不能执行表单验证,我有点困惑。如果用户未通过表单验证,则会因为加载了视图而向用户发出HTML文档警报。如果我不加载视图,它将不会显示登录页面。若我将直接加载视图,我将如何显示用户个人错误,如密

我在结合CodeIgniter和AJAX时遇到了麻烦。我有一张报名表。我想要的是,当用户点击我主页上的注册按钮时,他会在弹出窗口中得到一个注册表单。如果他在表单中输入了错误的详细信息,弹出窗口本身会提示他您的详细信息无效,他不得重定向到新页面以显示错误。所以我使用bpopup来弹出表单和ajax请求,但是我不能执行表单验证,我有点困惑。如果用户未通过表单验证,则会因为加载了视图而向用户发出HTML文档警报。如果我不加载视图,它将不会显示登录页面。若我将直接加载视图,我将如何显示用户个人错误,如密码必须为6个字符长。这是我的密码:

我的登录视图:

<html>
<head>
<title>Sign In</title>
<script type="text/javascript">
     var frm = $('form');
     frm.submit(function () {
     $("#status").empty();
     $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function (data) {
            if (data == "invalid") {
              $('#status').html("Invalid Login Details");
            }
            else if(data == "valid")
            {
                $('#status').html("Login successful");
                setTimeout(function(){
                    location.reload();
                },600);
            }
            else
            {
                $('#status').html("Your Account is not Activated");
            }
        }
    });
    return false;
});
</script>
</head>
<body>
<div class="Header">
    <h3>Sign In </h3>
</div>
<div id="status"></div>
<div class="main">
    <?php echo form_open('xyz/signin'); //Renders the form element and adds extra functionality like Adds a hidden CSFR prevention field.?> 
    <h5>Email</h5>  // For the time being I have remove echo form_error.
    <input type="text" name="email"  value="<?php echo set_value('email'); ?>" size="25"/>
    <h5>Password *</h5> // For the time being I have remove echo form_error.
    <input type="password" name="password" size="25"/>
    <div><input type="submit" value="Submit" "/></div>
    </form>
</div>

</body>
</html>

很抱歉,当我将代码粘贴到这里时,缩进被搞得一团糟。

我不知道你的弹出消息是怎么来的,但是如果没有错误和成功消息,请尝试

$this->session->set_flashdata("msg","<span class='m_error'>".$this->lang->line('global_insert_error')."</span>");

我只是需要帮助,我应该如何处理所有我的要求弹出沿边使用CodeIgniter。我有一个登录功能,在控制器加载登录视图。现在我的问题是,如果我加载这个->加载->查看('login'),那么每次用户单击submit时。它将再次加载视图。如何避免这个问题?我只希望我的登录页面加载一次,然后发出AJAX请求以检查登录详细信息。我应该做单独的功能,一个显示视图,另一个检查细节吗?对于弹出窗口,我使用了bpopup,它只加载您在弹出窗口中提供的url检查登录是否成功重定向到另一个页面。
$this->session->set_flashdata("msg","<span class='m_error'>".$this->lang->line('global_insert_error')."</span>");
if($this->session->flashdata('msg'))
{
   echo $this->session->flashdata('msg');
}