0
我是codeigniter的新手,所以對於簡單問題抱歉。codeigniter:返回表單驗證結果爲字符串
我想爲我的ajax進程運行formvalidator。我如何以JSON的形式返回Valdiation錯誤?有一個更好的方法嗎?
謝謝
我是codeigniter的新手,所以對於簡單問題抱歉。codeigniter:返回表單驗證結果爲字符串
我想爲我的ajax進程運行formvalidator。我如何以JSON的形式返回Valdiation錯誤?有一個更好的方法嗎?
謝謝
你還沒有真正說明你在做什麼。我假定你有一個表單,你想用Ajax保存數據,這樣你就沒有任何那些討厭的保存/提交按鈕。另外,我猜你有一些.change()處理程序,它將表單元素作爲一個名稱/值對發送到ajax處理程序,作爲一個後置變量。 您遇到的問題是,當您對數據運行表單驗證程序時,它總是會失敗。因爲表單驗證程序需要該表單的所有字段,並且一次只能發送一個數據。
通常在代碼點火器示例代碼,你檢查'run'方法是否傳遞或不。在你的情況下,它並不重要,因爲它總是會失敗,所以不要麻煩檢查。這裏是一些示例代碼
$this->form_validation->run('form'); // it is likely that the form won't validate, but thats ok.
$validation_error=form_error($field_name);
if($validation_error){
$feedback = 'Field <strong>NOT</strong> saved.';
}else{
// no errors, we can save.
$this->my_model->set_field($id,$field_name,$field_value);
$validation_error=' '; // this is set so if the field was initially not validated, and it is later, the validation message goes away.
$validation_element = '#'.$field_name;
$feedback = 'Field saved.';
}
....
echo json_encode(array('feedback'=>$feedback,'validation_element'=>'#'.$field_name,'validation_error'=>$validation_error));
break;
在我的片段,JSON對象返回到AJAX後的一個片段。在jquery ajax文章中,成功處理程序有這段代碼。
try{
var json = $.parseJSON(data);
if(typeof(json.container)==='string'){
var container=json.container;
}
if(typeof(json.html)==='string'){
var con = $(container);
$(con).html(json.html);
}
if(typeof(json.feedback)==='string'){
display_feedback(json.feedback);}
if(typeof(json.validation_element) ==='string'){
// assumes that if a validation_element object is returned, it has a paired validation_error element.
$(json.validation_element).closest('.col_b').nextAll('.validation_error').first().html(json.validation_error);
}
}
catch(err){
display_feedback(err);
}
在我的形式,我有一個三列的格式,其中:
<div class='col_a'>label</div>
<div class='col_b' >input, id = field_name </div>
<div class='col_c validation_error'>validation text</div>
希望這使得一些對你有意義。