我是PHP Codeigniter框架的新手。我正在设计一个我正在使用链接的页面。在点击链接时,它调用一个jquery函数,它通过jquery提交表单。我已经使用codeigniter表单验证方法进行服务器端验证,而且我已禁用客户端验证。PHP Codeigniter表单提交使用JQuery
问题是,在这个过程中,当通过jquery提交表单时,codeigniter表单验证方法不起作用。
但是,如果我使用提交按钮来提交表单,那么codeigniter表单验证方法完美地工作。
如果我需要通过jQuery提交表单并使用codeigniter表单验证方法,请告诉我该怎么做。
请找到下面的代码:
登录表单:
<?php echo validation_errors(); ?>
<form name="login-form" id="login-form" method="post" action="<?php echo base_url();?>index.php/login/login_form" >
<H2>Login</H2>
<div id="login-box-name">
Email:
</div>
<div id="login-box-field">
<input name="user-name" id="user-name" class="form-login" title="Please Enter Correct User Name" value="" size="30" maxlength="2048" />
</div>
<div id="login-box-name">
Password:
</div>
<div id="login-box-field">
<input name="password" id="password" type="password" class="form-login" title="Please Enter Correct Password" value="" size="30" maxlength="2048" />
</div>
<br />
<span class="login-box-options">
<input type="checkbox" name="1" value="1" title="Want this computer to remember you!!"> Remember Me <a href="#" id="login-div-change">Forgot password?</a>
</span>
<br />
<br />
<a href="" id="login-submit">
<img src="<?php echo base_url();?>assets/images/login-btn.png" width="110" height="40" style="margin-left:90px;" />
</a>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
jQuery函数提交关于点击 “链接” 的形式:
$("#login-submit").click(function() { $('#login-form').submit(); return false; });
控制器功能:
public function login_form() { $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $data['title'] = 'Log In'; $data['errorMessage'] = ''; $this->form_validation->set_rules('user-name', 'Email', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); if ($this->form_validation->run() == FALSE) { $this->load->view('templates/header', $data); $this->load->view('login', $data); $this->load->view('templates/footer'); } else { $this->load->view('templates/header', $data); $this->load->view('templates/menu'); $this->load->view('index', $data); $this->load->view('templates/footer'); } }
这里,如果我点击表单的“提交”按钮,那么codeigniter验证适用于用户名和密码字段。但是,如果我点击id =“login-submit”的链接,它会调用jquery函数并提交表单。但此次codeigniter验证不适用于用户名和密码字段。
我需要通过链接提交表单并且codeigniter验证函数应该为此工作。
在此先感谢.....
一些代码,可以帮助你...你确定你是调用同一个功能控制器的jQuery和默认的提交操作? – snaderss 2012-04-05 14:18:59
DUDE!我完全喜欢jquery和CI,整天使用它,让我告诉你一些事情会很有帮助!看看[这个jQuery插件](http://jquery.malsup.com/form/)它会让你的生活变得更容易100X,并且当你需要从php那边看到一些不需要的东西时,记得使用'print_r'相当加起来 – SpYk3HH 2012-04-05 14:20:37
我可以给你的另一个技巧[书签此页](http:// codeigniter。com/user_guide /)并经常使用它,使用它的一个好方法是单击左上角的“目录”选项卡,当它打开时,使用(在Chrome中是我使用的)ctrl + f来调出“找到”然后只需输入你要找的内容,并快速找到链接 – SpYk3HH 2012-04-05 14:23:03