0 php jquery codeigniter codeigniter-2
我想创建一个注册表单,我想在其中使用jquery以及CI验证库。我怎样才能做到这一点?提交表单后,我希望控件使用jquery进入验证库并返回响应。然后,如果一切顺利,我希望在该页面本身上显示“表单已提交”消息。
编辑:
这是我的代码。
视图
<?php $this->load->view('template/header'); ?>
<div id="add_form">
<h2>Add New Category</h2>
<?php echo form_open('abc/abc_category_controller/add_new_category'); ?>
<?php
$category_data = array(
'name' => 'category_name',
'id' => 'category_name',
'value' => set_value('category_name'),
'maxlength' => '15'
);
$unit_data = array(
'name' => 'unit',
'id' => 'unit',
'value' => set_value('unit'),
'maxlength' => '10'
);
?>
<p><label for="name">Name: </label><?php echo form_input($category_data); ?></p>
<p><label for="unit">Unit: </label><?php echo form_input($unit_data); ?></p>
<p><?php echo form_submit('submit', 'Submit','id="submit"'); ?></p>
<?php echo form_close(); ?>
<?php echo validation_errors('<p class="error">'); ?>
</div><!--end add new category-form-->
<div id="success_msg">
</div>
<?php $this->load->view('template/footer') ?>
Run Code Online (Sandbox Code Playgroud)
控制器-add_new_category
<?php
class Stocks_category_controller extends CI_Controller{
function add_new_category()
{
//$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Add a new category';
$this->form_validation->set_rules('category_name', 'Category Name', 'required');
$this->form_validation->set_rules('unit', 'Unit', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('abc/add_new_category');
}
else
{
$category_name = $this->input->post('category_name');
$unit = $this->input->post('unit');
$this->load->model('abc/abc_category_model');
$insert_id=$this->abc_category_model->add_new_category($category_name
,$unit);
if($insert_id!=NULL)
{
$this->load->view('template/success',$data);
}
else{
$data['error_msg']='Error Occurred';
$this->load->view('template/template',$data);
}
}
}
function success(){
$data['success_msg']='New Category Successfully Created';
$this->load->view('template/success',$data);
}
}
Run Code Online (Sandbox Code Playgroud)
最后是模型。
function add_new_category($category_name,$unit){
$data = array(
'abc_category_name' => $category_name ,
'unit' => $unit
);
$this->db->insert('abc_category', $data);
$insert_id=$this->db->insert_id();
return $insert_id;
}
Run Code Online (Sandbox Code Playgroud)
}
我想要的是,当我提交表单时,应该进行jquery验证。如果一切正常,则仅使用ajax显示成功消息,并且不应重新加载页面。另外,请告诉我是否可以同时使用jquery验证和CI验证库并同时维护ajax?
要实现客户端和服务器端验证,您需要使用jquery验证插件。
因此,您需要包括:
用加载JavaScript
<script type="text/javascript" src="<?php echo base_url();?>js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>js/jquery.validate.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>js/jquery.validate-rules.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后设置您的表单:
$attr = array('id' => 'demo_form');
echo form_open('demo/validation_example', $attributes);
Run Code Online (Sandbox Code Playgroud)
并验证您的表单,例如:
$(document).ready(function() {
$("#demo_form").validate({
rules: {
name: {
required: true
},
...
},
messages: {
name: {
required: "Name required",
},
},
errorElement: "span",
errorPlacement: function(error, element) {
error.appendTo(element.parent());
}
});
});
Run Code Online (Sandbox Code Playgroud)
并且也要使用服务器端验证,因为仅使用客户端验证不是一个好习惯。
要获得更多帮助,您可以找到有关
和工作演示
您可以在其中检查jquery验证,并通过禁用浏览器的javascript来检查使用php完成的codeigniter服务器端验证。
| 归档时间: |
|
| 查看次数: |
10365 次 |
| 最近记录: |