Tengo un inconveniente, al agregar un registro lo guarda por duplicado de la siguiente manera
actualPorcentaje 10 | marcaid 0
actualPorcentaje 0 | marcaid 4
Este formulario me permite actualizar los precios a través de un porcentaje, previo seleccionar una marca
Código HTML:
<form id="formProductos" action="<?php echo base_url () ?>index.php/actualizacion/adicionar" method="post"> <label for="">Porcentaje a actualizar</label> <input type="text" placeholder="Escriba el % de actualización" id="actualPorcentaje" name="actualPorcentaje" /> </form>
Código PHP:
<?php
echo '<a id="enviar" href="'.base_url
().'index.php/actualizacion/adicionar/'.$marcaid.'"> Actualizar Precios</a>';
?>
Código HTML:
<script type="text/javascript"> $(document).ready(function(){ $("#enviar").click(function(event){ $.ajax({ type: "POST", data: $('#formProductos').serialize(), url: "<?php echo base_url();?>index.php/actualizacion/adicionar", dataType: 'json', success: function(data) { if(data.result == true){ $('.results').html(data); } else{ alert('Ocurrió un error al agregar un producto.'); } </script>
función para insertar registros in model.php
Código PHP:
function add($table,$data){
$this->db->insert($table, $data);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
función para adicionar registros en controller.php
Código PHP:
function adicionar(){
$this->load->library('pagination');
$config['base_url'] = base_url().'index.php/actualizacion/gerenciar/';
$config['total_rows'] = $this->actualizacion_model->count('actualprecios');
$config['per_page'] = 10;
$config['next_link'] = 'Próxima';
$config['prev_link'] = 'Anterior';
$config['full_tag_open'] = '<div class="pagination alternate"><ul>';
$config['full_tag_close'] = '</ul></div>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>';
$config['cur_tag_close'] = '</b></a></li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['first_link'] = 'Primeira';
$config['last_link'] = 'Última';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$this->pagination->initialize($config);
$this->data['results'] = $this->actualizacion_model->get('actualprecios','idActualizacion, actualPorcentaje,actualFecha','',$config['per_page'],$this->uri->segment(3));
$this->load->library('form_validation');
$this->data['custom_error'] = '';
$marcaid = $this->uri->segment(3);
$this->data['productos'] = $this->actualizacion_model->getProductosById($marcaid);
$productos = $this->data['productos'];
$dataInicial = date("Y").'-'.date("m").'-'.date("d");
$usuario = $this->session->userdata('logado');
$actualPorcentaje = $this->input->post('actualPorcentaje');
$data = array(
'actualPorcentaje' => $actualPorcentaje ,
'actualFecha' => $dataInicial,
'marcaid' => $marcaid,
'usuarioid' => $usuario,
);
if ( is_numeric($id = $this->actualizacion_model->add('actualprecios', $data, true)) ) {
foreach ($productos as $p) {
$idProdutos = $p->idProdutos;
$precoVenda = $p->precoVenda;
$precioAnterior = $p->precoVenda;
$precoVenda = $precoVenda *(1 + $actualPorcentaje / 100);
$sql = "UPDATE produtos set precioAnterior = ?, precoVenda = ? WHERE idProdutos = ?";
$this->db->query($sql, array($precioAnterior, $precoVenda, $idProdutos));
}
$this->session->set_flashdata('success','El registro de Actualización de Precios se agregó correctamente!!!');
redirect(base_url().'index.php/actualizacion/gerenciar/');
} else {
$this->data['custom_error'] = '<div class="form_error"><p>An Error Occured.</p></div>';
}
$this->data['view'] = 'actualizacionp/actualizacion';
$this->load->view('tema/topo', $this->data);
}
}
});
});
});