Я не новичок в ajax, но здесь я сталкиваюсь с очень странной проблемой, я использую платформу codeigniter. Я пытаюсь сделать запрос из представления, используя ajax jquery с этим кодом ниже:
$("#form_tambah_skko").parsley();
$("#form_tambah_skko").on('submit', function(event) {
// validate form with parsley.
$(this).parsley().validate();
// if this form is valid
if ($(this).parsley().isValid()) {
// show alert message
$('#btnSave').text('menyimpan...'); //change button text
$('#btnSave').attr('disabled',true); //set button disable
var url;
url = "<?php echo site_url('dataskko/ajax_add')?>";
$('#loading_').show();
// ajax adding data to database
$.ajax({
url : url,
type: "POST",
data: $('#form_tambah_skko').serialize(),
success: function(data)
{
if(data.status) //if success close modal and reload ajax table
{
$('#btnSave').text('simpan');
$('#btnSave').attr('disabled',false);
$('#form_tambah_skko')[0].reset();
$('#loading_').hide();
swal('Ok!', 'Data SKKO Berhasil diinput!', 'success');
window.location.replace("<?php echo site_url('admin/skko/pagu') ?>");
}
else
{
alert("gagal input data");
for (var i = 0; i < data.inputerror.length; i++)
{
$('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
$('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
}
}
$('#btnSave').text('save'); //change button text
$('#btnSave').attr('disabled',false); //set button enable
},
error: function (jqXHR, textStatus, errorThrown)
{
swal("Oops", "No SKKO tidak boleh sama!", "error");
console.log(jqXHR.status);
console.log(jqXHR.responseText);
console.log(errorThrown);
$('#btnSave').text('simpan');
$('#btnSave').attr('disabled',false); //set button enable
}
});
}
// prevent default so the form doesn't submit. We can return true and
// the form will be submited or proceed with a ajax request.
event.preventDefault();
});
, и это мой контроллер
public function ajax_add_murni()
{
header("Content-Type: application/json; charset=utf-8");
date_default_timezone_set('Asia/Kuala_Lumpur');
$pagu_ao = preg_replace('/\,/', '', $this->input->post('ao_pagu'));
$ao_now = $this->input->post('sisa_ao1');
//if ($ao_now/$pagu_ao < 0.1) {
if($this->config->item('send_mail')) $this->kirim_email();
//}
// $tgl_kontrak = $this->input->post('tanggal_kontrak');
$no_kontrak = ltrim($this->input->post('no_kontrak'));
$jml2 = preg_replace('/\,/', '', $this->input->post('nilai_kontrak'));
$data = array(
'no_skko' => $this->input->post('no_skko'),
'no_kontrak' => $no_kontrak,
'tgl_awal' => $this->input->post('tanggal_awal_kontrak'),
'tgl_akhir' => $this->input->post('tanggal_akhir_kontrak'),
// 'tgl_kontrak' => $tgl_kontrak,
'uraian_kegiatan' => $this->input->post('kegiatan'),
'nilai_kontrak' => $jml2,
'saldo_kontrak' => $jml2,
'file_kontrak' => $this->input->post('encrypted_file'),
'jaminan_bank' => $this->input->post('encrypted_file2'),
'jenis' => $this->input->post('jenis'),
'id_vendor' => $this->input->post('id_vendor'),
'id_bank' => $this->input->post('id_bank_tujuan'),
'no_rekening' => $this->input->post('no_rekening'),
'pemilik_rekening' => $this->input->post('pemilik_rekening'),
'tgl_create' => date('Y-m-d H:i:s'),
'creator' => $this->input->post('_creator')
);
$data2 = array(
'id_skko' => $this->input->post('id_skko'),
'ao_terkini' => $this->input->post('sisa_ao1')
);
if($this->cek_no_kontrak($no_kontrak) >= 1){
echo json_encode(array('status_post' => "kontraksama", "message" => "nomor kontrak sudah pernah ada"));
}else{
if(($this->kontrak_model->save($data)) && ($this->dataskko_model->update(array('id_skko' => $this->input->post('id_skko')), $data2))){
echo json_encode(array("status_post" => TRUE));
} else{
echo json_encode(array("status_post" => FALSE));
}
}
}
и здесь Это ответ, который я получил, он всегда добавляет дополнительный массив {"status":null}
в начале индекса массива, я уверен, что этот первый индекс, имеющий нулевое значение, которое вызывает json, не удалось проанализировать. Но я не знаю, как это получить. Любая помощь будет оценена. Спасибо
Status: 200
ResponseTest: {"status":null}{"status_post":"kontraksama","message":"nomor kontrak sudah pernah ada"}
SyntaxError: Unexpected token { in JSON at position 15
at JSON.parse (<anonymous>)
at n.parseJSON (jquery.min.js:4)
at Xb (jquery.min.js:4)
at y (jquery.min.js:4)
at XMLHttpRequest.c (jquery.min.js:4)