form_validation tidak ke eksekusi

//struktur html
 <?php echo form_open('', 'id="form" '); ?>
    <span style="color:white !important" class="animsition " data-animsition-out-class="zoom-out-sm"> <?php echo validation_errors(); ?> </span>
    <input type="text" name="name" placeholder="Your Name" class="animsition" data-animsition-in-class="zoom-in-lg"><br><br>
    <input id="email" type="email" name="email" placeholder="Your Email" class="animsition" data-animsition-in-class="zoom-in-lg"><br><br>
    <textarea id="area" type="text" name="text" placeholder="Your Text" rows="5" class="animsition" data-animsition-in-class="zoom-in-lg"></textarea><br><br>
    <input type="submit" name="submit" value="SEND" class="animsition " data-animsition-out-class="zoom-out-sm">
 <?php form_close(); ?>

//ajax
$(document).ready(function(){
  $('#form').on('submit',function(e) {
    $.ajax({
      url:'<?= base_url()?>me/contact',
      data:$(this).serialize(),
      type:'POST',
      success:function(){
        swal(
        'Success..',
        'Thanks for your interest',
        'success'
        );
      },
      error:function(){
         swal(
        'Sorry..',
        'Try again',
        'error'
        );
      }
    });
    e.preventDefault();
    $('input:text').val('');
    $('#email').val('');
    $('#area').val('');
    $('input:text').focus();
  });
});

//controller
public function contact()
	{
		$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
		$this->form_validation->set_rules('text', 'Text', 'required');

		if ($this->form_validation->run() === FALSE ) {
			$this->load->view('contact');
		} else{
			$this->contact->entry();
			redirect('me/contact');
		}

	}

//model
public function entry()
	{
		$name = $this->security->xss_clean($this->input->post('name'));
		$email = $this->security->xss_clean($this->input->post('email'));
		$text = $this->security->xss_clean($this->input->post('text'));
		$insert = array(
				'name' => $name,
				'email' => $email,
				'text' => $text,
				'tgl' => date('Y-m-d H:i:s')
		);

		$this->db->insert('contact_me', $insert);
	}

jadi ketika saya klik submit dalam keadaan inputan kosong malah sweetalert nya yang langsung jalan harusnya kan validasi CI dulu

avatar killmee
@killmee

64 Kontribusi 21 Poin

Diperbarui 8 tahun yang lalu

2 Jawaban:

Pada saat ajax, selama koneksi ke url yang dikasih ngga ada masalah, dia akan ke success atau pada kasus ini otomatis ngasih respon dari sweeralertnya. Jadi dia ngga peduli kosong atau ngga

Ada banyak kemungkinan salahnya 1. $this->load->library('form_validation'); belum di load librarynya 2. udah coba di debug, apa pas form diklik data udah diterima di backend? coba die/var_dump di controllernya apakah semua data udah sesuai ekspektasi 3. di backend / controller, harusnya ngasih respon echo/die atau semacamnya, nanti diterima di ajax nya, hasilnya ini bisa kita uji di ajax/javascript apakah error atau ngga, tinggal bikin if-else, kalo error ngapain, kalo ngga ngapain

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 8 tahun yang lalu

Biasa nya sih klo ane ngirim data nya melalui ajax , ane kasih validation nya itu di ajax nya Make kondisi if elseif dan else Contoh

  <input type="text" id="name" name="name" placeholder="Your Name" class="animsition" data-animsition-in-class="zoom-in-lg"><br><br>
    <input id="email" type="email" name="email" placeholder="Your Email" class="animsition" data-animsition-in-class="zoom-in-lg"><br><br>
    <textarea id="area" type="text" name="text" placeholder="Your Text" rows="5" class="animsition" data-animsition-in-class="zoom-in-lg"></textarea><br><br>
    <input type="submit" name="submit" value="SEND" class="animsition " data-animsition-out-class="zoom-out-sm">

$(document).ready(function(){
  $('#form').on('submit',function(e) {
//Membuat Variabel Baru Dari inputan di atas tadi
  var name = $('#name').val();
  var email= $('#email').val();
  var area = $('#area').val();

  if (name == '') {
  alert('inputan nama tidak boleh kosong'); //Mengecek inputan nama apakah kosong
  } else if (email == '') {
  alert('inpuan email tidak boleh kosong'); //Mengecek inputan email apakah kosong
  } else if (area == '') {
  alert('inputan area tidak boleh kosong'); //Mengecek inputan area apakah kosong
  } else { //Jika Tidak ada yang kosong baru proses ke ajaxnya
    $.ajax({
      url:'<?= base_url()?>me/contact',
      data:$(this).serialize(),
      type:'POST',
      success:function(){
        swal(
        'Success..',
        'Thanks for your interest',
        'success'
        );
      },
      error:function(){
         swal(
        'Sorry..',
        'Try again',
        'error'
        );
      }
    });
    e.preventDefault();
    $('input:text').val('');
    $('#email').val('');
    $('#area').val('');
    $('input:text').focus();
  });
}
});

Semoga Membantu ^_^

avatar chelvin
@chelvin

36 Kontribusi 18 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban