2016-04-22 4 views
0

Просмотр кода, функции для создания массива данных, а затем передать его в контроллер через AJAX:не в состоянии передать данные от представления к контроллеру

function jobsheet_save() { 
    // array for parts 
    var parts = new Array(c); 

    for (i = 0; i < c; i++) 
     parts[i] = new Array(4); 

    for (i = 0; i < c; i++) { 
     parts[i][0] = $('#textbox' + (i+1)).val(); 
     parts[i][1] = $('#pd' + (i+1)).val(); 
     parts[i][2] = $('#pq' + (i+1)).val(); 
     parts[i][3] = $('#pa' + (i+1)).val(); 
    } 

    var jformdata = new Array(); 

    // array for form 
    var jid = $('#jobsheetid').val(); 
    var jregdate = $('#regdate').val(); 
    var jregby = $('#regby').val(); 
    var jsource = $('#source').val(); 
    var jcompdate = $('#completiondate').val(); 
    var jdeldate = $('#deliverydate').val(); 
    var jjcustid = $('#jcustomerId').val(); 
    var jcustname = $('#jcustomername').val(); 
    var jcustadd = $('#jaddress1').val(); 
    var jcustphone = $('#jphone1').val(); 
    var jcustemail = $('#jemail').val(); 
    var jproducttype = $('#jproducttype').val(); 
    var jproductname = $('#jproductname').val(); 
    var jproductmodel = $('#pmodel').val(); 
    var jproductserial = $('#pserialno').val(); 
    var jproductsubcat = $('#pscat').val(); 
    var jproductwarranty = $('#pwarranty').val(); 
    var jproductcondition = $('#pcondition').val(); 
    var jproductcomplaint = $('#jproductcomplaint').val(); 
    var jproductcomptype = $('#jcomplainttype').val(); 
    var jproductpurdate = $('#pdate').val(); 
    var jdealername = $('#jdealername').val(); 
    var jdealerphone = $('#jdealerphone').val(); 
    var jcallallocdate = $('#jcallallocdate').val(); 
    var jcallalloctime = $('#jcallalloctime').val(); 
    var jvisitdate = $('#visitdate').val(); 
    var jvisitdetails = $('#visitdetails').val(); 
    var jengname = $('#engname').val(); 
    var jrepairremarks = $('#repairremarks').val(); 

    // insert variable values into array 
    jformdata[0] = jid; 
    jformdata[1] = jregdate; 
    jformdata[2] = jregby; 
    jformdata[3] = jsource; 
    jformdata[4] = jcompdate; 
    jformdata[5] = jdeldate; 
    jformdata[6] = jjcustid; 
    jformdata[7] = jcustname; 
    jformdata[8] = jcustadd; 
    jformdata[9] = jcustphone; 
    jformdata[10] = jproducttype; 
    jformdata[11] = jproductname; 
    jformdata[12] = jproductmodel; 
    jformdata[13] = jproductserial; 
    jformdata[14] = jproductsubcat; 
    jformdata[15] = jproductwarranty; 
    jformdata[16] = jproductcondition; 
    jformdata[17] = jproductcomplaint; 
    jformdata[18] = jproductcomptype; 
    jformdata[19] = jproductpurdate; 
    jformdata[20] = jdealername; 
    jformdata[21] = jdealerphone; 
    jformdata[22] = jcallallocdate; 
    jformdata[23] = jcallalloctime; 
    jformdata[24] = jvisitdate; 
    jformdata[25] = jvisitdetails; 
    jformdata[26] = jengname; 
    jformdata[27] = jrepairremarks; 

    alert(jformdata); 
    // ajax adding data to database 
    $.ajax({ 
     url: "<?php echo site_url('jobsheet_controller/add_data')?>", 
     type: "POST", 
     data: ({ 
      jfdata: jformdata 
     }), 
     success: function (data) { 
      alert("aala r"); 
      if (data.status) { // if success close modal and reload ajax table 
       $('#modal_jobsheet').modal('hide'); 
       reload_table(); 
      } else { 
       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) { 
      alert('Error adding/update data'); 
      $('#btnSave').text('save'); //change button text 
      $('#btnSave').attr('disabled', false); //set button enable 
     } 
    }); 
} 

Это код контроллера, чтобы принимать данные от просмотреть, а затем передать его в модель:

public function add_data() { 
    $dealercode = $this->session->userdata('userid'); 
    $did = $dealercode['dealercode']; 
    $data = $this->input->post('jfdata'); 
    $data3 = array(
     'jobsheetid' => $data[0], 
     'regdate' => $data[1], 
     'regby' => $data[2], 
     'source' => $data[3], 
     'completiondate' => $data[4], 
     'deliverydate' => $data[5], 
     'customerId' => $data[6], 
     'customername' => $data[7], 
     'customeraddress' => $data[8], 
     'customerphone' => $data[9], 
     'producttype'=> $data[10], 
     'productname' => $data[11], 
     'productmodel' => $data[12], 
     'productserial' => $data[13], 
     'subcategory' => $data[14], 
     'warranty' => $data[15], 
     'productcondition' => $data[16], 
     'complaint' => $data[17], 
     'complainttype' => $data[18], 
     'purchasedate' => $data[19], 
     'dealername' => $data[20], 
     'dealerphone'=> $data[21], 
     'callallocdate' => $data[22], 
     'callalloctime' => $data[23], 
     'visitdate' => $data[24], 
     'visitdetail' => $data[25], 
     'engname' => $data[26], 
     'repairremark' => $data[27], 
     'servicecharges' => $data[28], 
     'dealercode' => $did 
    ); 

    // Save data to customerMaster 
    $insert = $this->jobsheet->save($data3); 
    echo json_encode(array("status" => TRUE)); 
} 

Это код модели, функция для отправки данных в базу данных:

public function save($data) { 
    $this->db->insert($this->table, $data); 
    return $this->db->insert_id(); 
} 
+0

Ьгу 'данных: {jfdata: jformdata}' в вашем АЯКС запросе (я удалил "()"). [jquery ajax] (http://api.jquery.com/jquery.ajax/). Может быть, вам нужно получить такие данные: '$ variable = json_decode ($ _ POST [" jfdata "]);' – flohdieter

+0

все попытки все еще не работают. – Himanshu

+0

вам нужно больше переменных человек, их почти не хватает :))) – madalinivascu

ответ

0

добавьте тип данных в функцию ajax как «json» или «html».

+0

пробовал, но не работает :( – Himanshu

0

Вот ваша проблема:

data: ({ 
jfdata: jformdata 
}) 

изменения в этот

data:{ 
jfdata: jformdata 
} 
+0

не работает :(:( – Himanshu

+0

, не процитируя, что вы имеете в виду? – madalinivascu

+1

вы имеете в виду ваш ajax isn ' t триггер, вы имеете в виду, что у вас ошибка 404 ajax, вы имеете в виду, что у вас есть 500eror, вы имеете в виду, что у вас есть консольные ошибки, что это за "не работает" – madalinivascu

Смежные вопросы