如果我不想刷新页面,该如何在Codeigniter中进行表单验证?基本上我是这样做的:
$config = array(
array(
'field' => 'c_name',
'label' => 'Name',
'rules' => 'trim|required'
),
array(
'field' => 'c_job',
'label' => 'Job',
'rules' => 'trim|required',
)
);
$this->form_validation->set_rules($config);
if($this->form_validation->run() == true)
{
$this->load->model('model');
//.....
}
else{
$this->load->view('view');
}
但是,如果我使用ajax发送数据并且页面没有刷新,我该如何进行表单验证?
编辑:
谢谢@ Amra Kojon。很好并且可行,但是新的问题是:
if ($this->form_validation->run() == FALSE) {
echo validation_errors();
}
else {
//echo 'hi';
$value = $this->input->post('value');
$values = array(
'c_name' => $value['c_name'],
'c_job'=> $value['c_job'],
'c_address'=> $value['c_address'],
'c_phone'=> $value['c_phone'],
'c_mail'=> $value['c_mail'],
'c_state'=> $value['c_state'],
'c_intrest'=> $value['c_intrest'],
'c_added_info'=> $value['c_added_info']
);
$add = $this->customers_model->add_customer($values);
echo $add;
}
如果我只是在其他部分说回声“某物”,它可以工作,并且验证还可以,它回声是好,但是如果我在数据库中写入主题(值数组中包含数据且不是ajax方式,则插入日期),它不起作用,其他部分不起作用!!!
如果您提供了JS-jQuery Ajax代码,则可以更有效地理解您的问题。请尝试以下说明...
1)获取获取表单值并传递给表单
<script type="text/javascript">
$(document).ready(function(){
var dataString = $("#FormId").serialize();
var url="ControllerName/MethodName"
$.ajax({
type:"POST",
url:"<?php echo base_url() ?>"+url,
data:dataString,
success:function (data) {
alert(data);
}
});
})
</script>
控制器 :
将构造中的库form_validation加载为...
$ this-> load-> library('form_validation');
$ this-> load-> helper('form');
现在将您的控制器写为...
function MethodName {
$this->form_validation->set_error_delimiters('', '');
$this->form_validation->set_rules('fname','First Name', 'required');
$this->form_validation->set_rules('lname','Last Name', 'required');
$this->form_validation->set_rules('email','Email Address','required|valid_email|is_unique[sec_users.email]');
if ($this->form_validation->run() == FALSE) {
echo validation_errors();
}
else {
// To who are you wanting with input value such to insert as
$data['frist_name']=$this->input->post('fname');
$data['last_name']=$this->input->post('lname');
$data['user_name']=$this->input->post('email');
// Then pass $data to Modal to insert bla bla!!
}
}
希望能在我的应用程序中正常工作。
如果是最佳答案,请接受。
谢谢!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句