Может ли кто-нибудь помочь мне, почему мой код возвращается if ($this->form_validation->run() == FALSE)
. Я начинаю с codeigniter, и я хочу использовать form_validation для соответствия правилам смены пароля. Я хочу только вернуть выражение form_validation в true, чтобы я мог продолжить обновление в базе данных.codeigniter form_validation return false
Я уже загрузил form_validation, url и т. Д. Мой код callback_oldpassword работает отлично, поэтому мне не нужно покрывать его в моем вопросе. Поэтому никогда не обращайте обратный вызов, он уже возвращает true.
что я хочу, чтобы сосредоточиться на совпадении моего пароля?. Я думаю, что это неправильно. Может ли кто-нибудь помочь мне узнать, что произойдет. ? чтобы вернуть form_validation в true на основе правил, которые я объявил.
Вот моя форма:
<form id="pass_form" class="form-horizontal">
<?php $userid = ($this->session->userdata['logged_in']['user_id']); ?>
<input type="hidden" name="userid" id="userid" value="<?php echo $userid ?>" />
<div class="form-group">
<label class="control-label col-sm-3" for="curPword">Current Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" name="curPword" id="curPword" placeholder="Enter current password" required />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3" for="newPword">New Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" name="newPword" id="newPword" placeholder="Enter new password" required />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3" for="confPword">Confirm Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" name="confPword" id="confPword" placeholder="Confirm new password" required />
</div>
<div class="col-sm-8 ajax_pass_result"></div>
</div>
<button onclick="changepass(event)" class="btn btn-success btn-sm "><i class="fa fa-refresh"></i> Update Password</button>
</form>
мой Аякса:
function changepass(e) {
e.preventDefault();
jQuery.ajax({
type: "POST",
url: "<?php echo site_url('manager/profile/update_password') ?>",
data: $("#pass_form").serialize(),
success: function(res) {
$(".ajax_pass_result").html(res);
}
});
}
и мой контроллер, где form_validation всегда возвращает ложь:
public function update_password() {
$config = array(
array(
'field' => 'curPword',
'label' => 'curPword',
'rules' => 'trim|required|callback_oldpassword_check' // Note: Notice added callback verifier.
),
array(
'field' => 'confPword',
'label' => 'confPword',
'rules' => 'trim|required|matches[password]'
),
array(
'field' => 'newPword',
'label' => 'newPword',
'rules' => 'trim|required'
));
$this->form_validation->set_rules($config);
if ($this->form_validation->run() == FALSE) {
echo 'Error in password fields !';
}
else {
unset($_POST);
$message = "No Error ";
echo "<script type='text/javascript'>alert('$message');</script>";
}
}
U нужно использовать в виду, это скажет вам, что фактическое получение. –
devpro
Вы попали в ловушку с использованием сжатых слов (не имея лучшего термина), а затем возвращаетесь к использованию полных слов ... В ваших правилах, где у вас есть запись, совпадающая с [password], где пароль? Не предполагается, что это curpword или currentPassword, который читает намного лучше. Дополнительные нажатия клавиш, необходимые для написания слов в полном объеме (не), стоили вам ничего ... – TimBrownlaw
@TimBrownlaw благодарим вас за ответ, как я могу сменить его сэр. , Я не понимаю, что hppen .. вы можете ответить? –