jquery ajax로 양식 유효성 검사 자습서를 많이 보았습니다. 나는 모두가 단지 sucessfull form validation 만 말하고있는 것과 동일한 것을 발견했다. 서버 측 유효성 검사가 실패 할 경우 어떻게 오류를 표시 할 수 있는지 알아야합니다. 즉, 아약스없이 양식을 제출하면 양식에 오류 메시지가 다시 채워지고 입력 된 내용이 사용자에게 제공됩니다. 이 방법에서는 form_prep과 같은 훌륭한 php 함수를 사용합니다. 여기에보기 코드가 있습니다.jquery.load를 사용하여 codeigniter에서 ajax로 유효성 검사 실패 후 양식 채우기
<?php // Change the css classes to suit your needs
$attributes = array('class' => '', 'id' => 'login');
echo form_open(SITE_URL.'user/insertUser', $attributes);
?>
<p>
<label for="username">User Name <span class="required">*</span></label>
<input type="text" name="username" maxlength="255" value="<?php echo form_prep($this->input->post('username'));?>" />
<span id="username"><?php echo form_error('username'); ?></span><br />
</p>
<p>
<label for="first_name">First Name <span class="required">*</span></label>
<input type="text" name="first_name" maxlength="255" value="<?php echo form_prep($this->input->post('first_name'));?>" />
<span id="first_name"><?php echo form_error('first_name'); ?></span><br />
</p>
<p>
<label for="last_name">Last Name <span class="required">*</span></label>
<input type="text" name="last_name" maxlength="255" value="<?php echo form_prep($this->input->post('last_name')); ?>" />
<span id="last_name"><?php echo form_error('last_name'); ?></span><br />
</p>
<p>
<label for="password">Password <span class="required">*</span></label>
<input type="text" name="password" maxlength="255" value="<?php echo form_prep($this->input->post('password')); ?>" />
<span id = "password"><?php echo form_error('password'); ?></span><br />
</p>
<p>
<label for="email">Email <span class="required">*</span></label>
<input type="text" name="email" maxlength="255" value="<?php echo form_prep($this->input->post('email')); ?>" />
<span id = "email"><?php echo form_error('email'); ?></span><br />
</p>
<p>
<?php echo form_submit('submit', 'Submit', 'id="submit"'); ?>
</p>
<?php echo form_close(); ?>
현재의 보안 문제에 대한 도움을 사용 form_prep ($ this-> 입력 -> 포스트 ('이름')를) 볼 수 있습니다. 하지만 같은 양식을 사용하여 유효성 검사 실패시 ajax로 다시 채울 때 오류가 표시되거나 입력 상자가 채워지지 않습니다. 대신 이것이 처음으로로드되는 것처럼 폼을로드합니다. 아약스와 함께 사용하는 방법은 다음과 같습니다. 사업부 내가로드하고
$('#userform').load('<?php $this->load->view('user_form')?>');
$(function()
{
$('#login').submit(function()
{
$.ajax(
{
type : 'POST',
data : $(this).serialize(),
url : $(this).attr('action'),
success : function(data)
{
if(data == 1)
{
// do something
}
else
{
$('#userform').load('<?php $this->load->view('user_form')?>');
}
}
});
return false;
});
});
이제 아약스 그리고 마지막으로 내 컨트롤러 형태로 먼저
는
function insertUser()
{
if($this->form_validation->run() == FALSE)
{
echo 0;
}else{
echo 1;
}
}
와
를 교체합니다. 내가 원했던 완벽한 물건! 다시 감사합니다 –
당신은 환영합니다 :) –