2016-04-22 182 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},'在你的Ajax查詢(我刪除了 「()」)。 [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

通過不woking是什麼意思? – madalinivascu

+1

你的意思是你的ajax isn' t觸發,你的意思是你有404 ajax錯誤,你的意思是你有500eror,你的意思是你有控制檯錯誤,這是什麼exacly是「不工作」 – madalinivascu

相關問題