php - Insert array values with foreach using codeigniter -
i have form below, , dynamically adding , removing fields. want accomplish insert info form while should not matter how many rows has present.
<tr> <td><input name="model[]" type="text" class="input-large" id="a1" value="" /></td> <td><input name="color[]" type="text" class="input-small" id="color1" value="" /></td> <td><input name="price[]" type="text" class="input-small" id="b1" value="" data-format="0,0[.]00" /></td> <td><input name="quantity[]" type="text" class="input-small" id="c1" value="" data-format="0" /></td> <td><input name="addon[]" type="text" class="input-small" id="d1" value="" data-format="0,0[.]00" /></td> <td><input name="discount[]" type="text" class="input-small" id="e1" value="" data-format="0,0[.]00" /></td> <td><input name="total[]" type="text" class="input-small" id="f1" value="" data-formula="($b1*$c1)+($d1-$e1)" readonly /></td> <td><input type="button" value="remove" class="btn-remove btn btn-mini btn-danger" /></td> </tr>
javascript:
<script type="text/javascript"> var currentrow = 1; $(document).ready(function(){ $('#calx').calx(); $('#add_item').click(function(){ var $calx = $('#calx'); currentrow++; $calx.append('<tr>\ <td><input type="text" name="model[]" class="input-large" id="a'+currentrow+'" value="" /></td>\ <td><input type="text" name="color[]" class="input-small" id="color1'+currentrow+'" value="" /></td>\ <td><input type="text" name="price[]" class="input-small" id="b'+currentrow+'" value="" data-format="0,0[.]00" /></td>\ <td><input type="text" name="quantity[]" class="input-small" id="c'+currentrow+'" value="" data-format="0" /></td>\ <td><input type="text" name="addon[]" class="input-small" id="d'+currentrow+'" value="" data-format="0,0[.]00" /></td>\ <td><input type="text" name="discount[]" class="input-small" id="e'+currentrow+'" value="" data-format="0,0[.]00" /></td>\ <td><input type="text" name="total[]" class="input-small" id="f'+currentrow+'" value="" data-format="" data-formula="($b'+currentrow+'*$c'+currentrow+'+$d'+currentrow+'-$e'+currentrow+')" /></td>\ <td><input type="button" value="remove" class="btn-remove btn btn-mini btn-danger" /></td>\ </tr>'); //update total formula $('#g1').attr('data-formula','sum($f1,$f'+currentrow+')'); $calx.calx('refresh'); }); $('#calx').on('click', '.btn-remove', function(){ $(this).parent().parent().remove(); $('#calx').calx('refresh'); }); }); </script>
i have controller like:
public function add_transactions(){ $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('model[]', 'item name or model', 'trim|required|xss_clean'); $this->form_validation->set_rules('color[]', 'color', 'trim|required|xss_clean'); $this->form_validation->set_rules('price[]', 'item price', 'trim|required|xss_clean'); $this->form_validation->set_rules('quantity[]', 'quantity', 'trim|required|xss_clean'); $this->form_validation->set_rules('addon[]', 'add-on', 'trim|required|xss_clean'); $this->form_validation->set_rules('discount[]', 'discount', 'trim|required|xss_clean'); $this->form_validation->set_rules('total[]', 'unit cost or amount', 'trim|required|xss_clean'); if($this->form_validation->run() == false){ $code = $this->input->post('code'); $this->load->model('purchase_order'); $this->load->model('supplier'); $data['result'] = $this->purchase_order->getpurchaseorderbyid($code); $data['results'] = $this->supplier->supplierlist(); $data['main_content'] = 'purchase_order_pricing.php'; $this->load->view('dashboard',$data); } else { $this->load->model('purchase_order'); $result = $this->purchase_order->addpurchaseorder($data); if(!$result['error']) { $this->session->set_flashdata('flashsuccess', 'purchase order transaction has been updated.'); redirect('home/purchase_order_view', 'refresh'); $data['main_content'] = 'purchase_order_view.php'; $this->load->view('dashboard',$data); } else { $this->session->set_flashdata('flashsuccess', 'the server busy please seek 1 time again later.'); redirect('home/purchase_order_view', 'refresh'); $data['main_content'] = 'purchase_order_view.php'; $this->load->view('dashboard',$data); } } }
and model like:
public function addpurchaseorder($data){ $data =array(); for($i=0; $i<sizeof($data); $i++) { $data[$i] = array( 'model' => $model[$i], 'color' => $color[$i], 'price' => $price[$i], 'quantity' => $quantity[$i], 'addon'=>$addon[$i], 'discount'=>$discount[$i], 'total'=>$total[$i], 'code'=>$code[$i] ); } $this->db->insert('purchase_order_info',$data); }
public function addpurchaseorder ($data) { $data =array(); for($i=0; $i < $count; $i++) { $data[$i] = array( 'model' => $model[$i], 'color' => $color[$i], 'price' => $price[$i], 'quantity' => $quantity[$i], 'addon'=>$addon[$i], 'discount'=>$discount[$i], 'total'=>$total[$i] ); } $this->db->insert_batch('table_name_here', $data); }
php codeigniter foreach
No comments:
Post a Comment