0
나는이 코드를 연구하여 ajax로 유효성을 검사합니다.Codeigniter ajax 폼 유효성 검사 오류
public function create(){
$data = array('success' => false, 'messages' => array());
$this->form_validation->set_rules('PROVINCE','Province Name','trim|required|max_length[30]|callback_if_exist');
$this->form_validation->set_error_delimiters('<p class="text-danger"','</p>');
if($this->form_validation->run($this)){
$data['success'] = true;
}else{
foreach ($_POST as $key => $value) {
# code...
$data['messages']['key'] = form_error($key);
}
}
echo json_encode($data);
}
그리고 내 자바 스크립트는 다음과 같습니다 :
내 컨트롤러는 처음에는
<script>
$('#form-user').submit(function(e){
e.preventDefault();
var me = $(this);
// perform ajax
$.ajax({
url: me.attr('action'),
type: 'post',
data: me.serialize(),
dataType: 'json',
success: function(response){
if (response.success == true){
alert('success');
}else{
$.each(response.messages, function(key, value) {
var element = $('#' + key);
element.closest('div.form-group')
.removeClass('has-error')
.addClass(value.length > 0 ? 'has-error' : 'has-success')
.find('.text-danger')
.remove();
element.after(value)
});
}
}
});
});
</script>
내 다른 문이 있다면 :
if (response.success == true){
alert('success');
}else{
alert('failed');
});
하지만 난이 코드를 넣을 때
$.each(response.messages, function(key, value) {
var element = $('#' + key);
element.closest('div.form-group')
.removeClass('has-error')
.addClass(value.length > 0 ? 'has-error' : 'has-success')
.find('.text-danger')
.remove();
element.after(value)
유효성 검사에 실패하면 버튼이 더 이상 작동하지 않습니다.
* "버튼이 작동하지 않는에게"원하는 PHP는 루프에서 문자열
'key'
코딩 어렵다 * 적절한 기술적 문제 설명이 아닙니다. 서버에서 실제 응답 – charlietfl