У меня есть модель редактирования, она содержит 2 формы, имя и адрес электронной почты, я поместил в свою форму javascript, поэтому, когда пользователь редактирует их имя/адрес электронной почты, программа проверяет, находится ли имя/адрес электронной почты уже в базе данных или нет, в базе данных будет указано, что имя /email уже существует.
Проблема в том, что для формы имени этот код работает отлично, но когда я попробовал его в форме электронной почты, он только читал один оператор if, который говорит, что сообщение об ошибке уже существует, даже если письмо не существует в базе данных.
Одна из важных вещей заключается в том, что URL-адрес в codeigniter
не может читать символы, такие как @
, поэтому тот же код для проверки имени не может использоваться при проверке электронной почты, поэтому я создал новую функцию и весь мой связанный код так:
Модель
function email_exists($email)
{
$this->db->where('email', $email);
$query = $this->db->get('petugas');
if( $query->num_rows() > 0 ){ return TRUE; } else { return FALSE; }
}
контроллер
public function register_email_exists()
{
if (array_key_exists('email',$_POST)) {
$email=$this->input->post('email');
if ($this->Crud->email_exists($email) == TRUE ) {
echo false;
} else {
echo true;
}
}
}
Javascript
var check5;
$("#editemail").bind("keyup change", function(){
var editemail = $(this).val();
$.ajax({
url:'kasir/cekEmailEdit2',
type:"POST",
data:{send:true, email:email},
success:function(data){ alert(email);
if (editemail!=oldEmail){
if(data==true){
//email not exist in database, so form can be edit
$("#report5").text("berhasil karna nama email baru");
check5=1;
}else{
//email exist in database, show alert
$("#report5").text("*email sudah terpakai");
check5=0;
}
}else{
//success submit form because no data has been changed
$("#report5").text("berhasil karna gajadi ganti email");
check5=1;
}
}
});
});
Попробуй это:
function email_exists($email)
{
return $this->db->where('email', $email)->count_all_results('petugas');
}
public function register_email_exists()
{
$result = array(
'status' => 1 // denotes exists
);
if($this->input->post('email') != ''){
$email = $this->input->post('email');
if($this->Crud->email_exists($email)){
$result['status'] = 1;
}else{
$result['status'] = 0;
}
}
echo header('Content-Type: application/json');
echo json_encode($result);
}
Часть JS:
success:function(data){
data = JSON.parse(data);
if(data.status){
alert('Exists');
}else{
alert('Not exists');
}
}
*emailexist
, но после использования вашего кода, сейчас ничего не происходит, никаких уведомлений вообще, и это влияет на мою форму имени. и что использовать для count_all_results('petugas')
count_all_results()
- это краткая форма count()
в mysql, которая выдает мумерный вывод. Добавлена одна строка в функцию JS, пожалуйста, следуйте.