, поэтому у меня возникла проблема при отправке электронного письма, когда я хочу отправить электронное письмо после отправки данных со своей страницы, она обнаружила пользовательскую ошибку из моей функции ajax. Ошибка похожа на это «обновление Gagal, браузер akan direload», я уже пытался поместить свой $ this -> _ sendemail () после того, как мой код токена csrf заработал, но это слишком долго, чтобы завершить sh функцию. пожалуйста, помогите мне?
Контроллер:
public function tambah(){
cekajax();
$post = $this->input->post();
$validation = $this->form_validation;
$validation->set_rules($this->rules());
if ($this->form_validation->run() == FALSE){
$errors = $this->form_validation->error_array();
$data['errors'] = $errors;
}else{
$password = password_hash($post['password'], PASSWORD_BCRYPT);
$this->load->model('panggildata_model');
$propinsi = $this->panggildata_model->panggildata("provinces",array(
'id'=>$post["propinsi"],
));
$kota_kab = $this->panggildata_model->panggildata("regencies",array(
'id'=>$post["kota_kab"],
));
$tanggal_daftar = date('Y-m-d');
$tabel = "club";
$kode_awal = "GAN-".str_replace("-", "", $tanggal_daftar);
$no_reg_club = $this->_kode($tabel,$kode_awal,"no_reg_club");
$param = array(
'tanggal_daftar'=>$tanggal_daftar,
'no_reg_club'=>$no_reg_club,
'nama_ketua_club'=>$post["nama_ketua_club"],
'nama_club'=>$post["nama_club"],
'propinsi'=>$propinsi->row()->name,
'kota_kab'=>$kota_kab->row()->name,
'alamat'=>$post["alamat"],
'no_hp'=>$post["no_hp"],
'email'=>$post["email"],
'password'=>$password,
);
$this->load->model('simpandata_model');
$simpan = $this->simpandata_model;
$this->_sendEmail();
if($simpan->simpandata($tabel,$param)){
$data['success']= true;
$data['message']= "Berhasil Register Club";
}else{
$errors['fail'] = "Gagal Register Club";
$data['errors'] = $errors;
}
}
$data['token'] = $this->security->get_csrf_hash();
echo json_encode($data);
}
private function _sendEmail()
{
$email = $post['email'];
$config = [
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_user' => '',
'smtp_pass' => '',
'smtp_port' => 465,
'mailtype' => 'html',
'charset' => 'utf-8',
'newline' => "\r\n"
];
$this->load->library('email', $config);
$this->email->initialize($config);
$this->email->from('zixvyweb@gmail.com', 'GAN FC');
$this->email->to($email);
$this->email->subject('Account Verification');
$this->email->message('Selamat Akun anda sudah terverifikasi');
if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die;
}
}
Ajax:
// ajax tambah data start
$( "#FormulirTambah" ).submit( function (e) {
blurForm();
var login_url = "<?= base_url('clubs/login_club') ?>";
$('.help-block').hide();
$('.form-group').removeClass('has-error');
$("#submitform").attr("disabled", true).html('Loading ...');
var form = $('#FormulirTambah')[0];
var formData = new FormData(form);
$.ajax({
type : 'POST',
url : '<?php echo base_url()?>registclub/tambah',
data : formData,
processData: false,
contentType: false,
cache: false,
dataType : 'json'
}).done(function(data) {
if ( ! data.success) {
$('input[name=<?php echo $this->security->get_csrf_token_name();?>]').val(data.token);
$("#submitform").attr("disabled", false).html('Submit');
var objek = Object.keys(data.errors);
for (var key in data.errors) {
if (data.errors.hasOwnProperty(key)) {
var msg = '<div class="help-block" for="'+key+'">'+data.errors[key]+'</span>';
$('.'+key).addClass('has-error');
$('input[name="' + key + '"]').after(msg);
$('select[name="' + key + '"]').after(msg);
$('textarea[name="' + key + '"]').after(msg);
}
if (key == 'fail') {
new PNotify({
title: 'Notifikasi',
text: data.errors[key],
type: 'danger'
});
}
}
} else {
$('input[name=<?php echo $this->security->get_csrf_token_name();?>]').val(data.token);
PNotify.removeAll();
$("#submitform").attr("disabled", false);
$('#tambahData').modal('hide');
$('#FormulirTambah')[0].reset();
$('.select2-input').val(null).trigger("change");
$('#submitform').html('Login');
new PNotify({
title: 'Notifikasi',
text: data.message,
type: 'success'
});
window.location = login_url;
}
}).fail(function(data) {
new PNotify({
title: 'Notifikasi',
text: "Gagal update, browser akan direload",
type: 'danger'
});
window.setTimeout(function() { location.reload();}, 2000);
});
e.preventDefault();
});
// ajax tambah data end