Buenas, he estado con un problemon. He estado buscando en internet, sin suerte, estoy trabajando un proyecto en codeigniter y quiero saber como llenar un campo despues de seleccionar una opcion de un autocomplete. Les pongo mi codigo para que lo vean:
Codigo del view
Código:
<script type="text/javascript">
$(document).ready(function(){
//utilizamos el evento keyup para coger la información
//cada vez que se pulsa alguna tecla con el foco en el buscador
$(".productos").keyup(function(){
//en info tenemos lo que vamos escribiendo en el buscador
var info = $(this).val();
//hacemos la petición al método autocompletar del controlador autocompletado
//pasando la variable info
$.post('buscar_productos',{ info : info, tipo: $("#tipo:checked").val()}, function(producto){
//si autocompletado nos devuelve algo
if(producto != '')
{
//en el div con clase contenedor mostramos la info
$(".contenedor_productos").html(producto);
}else{
$(".contenedor_productos").html('');
}
})
})
$(".contenedor_productos").find("a").live('click',function(e)
{
e.preventDefault();
$("input[name=productos]").val($(this).text());
$(".contenedor_productos").html('');
})
$(".productos").change(function(){
var prod_precio = $(this).val();
$.post('buscar_precio',{ prod_precio : prod_precio }, function(costo){
$(".precio").html("costo");
//$("input[name=precio]").val(costo);
})
})
})
</script>
</head>
<body>
<form id="form_add_ps">
<p>
<label>Tipo:</label> <input type="radio" name="tipo" id="tipo" value="1" checked="checked"> Producto <input type="radio" value="2" name="tipo" id="tipo"> Servicio
</p>
<p>
<label>Nombre:</label> <input type="text" name="productos" id="productos" maxlength="15" onpaste="return false" class="productos" />
</p>
<p><div class="contenedor_productos"></div></p>
<p>
<label>Precio:</label> <input type="text" class="precio" disabled name="precio" id="precio" style="width:220px">
</p>
<p>
<label>Cantidad:</label><br clear="all"> <input type="text" name="cantidad" id="cantidad" class="text number required" style="width:220px">
</p>
<p align="center"><input type="submit" class="submit mid" id="aceptar" value="Aceptar" /></p>
</form>
</body>
</html>
Controlador:
Código:
public function buscar_productos()
{
//si es una petición ajax y existe una variable post
//llamada info dejamos pasar
if($this->input->is_ajax_request() && $this->input->post('info'))
{
$abuscar = $this->security->xss_clean($this->input->post('info'));
if($_POST['tipo'] == 1){
$search = $this->autocompletado_model->buscador_productos($abuscar);
}else{
$search = $this->autocompletado_model->buscardor_servicio($abuscar);
}
//si existe algún resultado lo devolvemos
//si search es distinto de false significa que hay resultados
//y los mostramos con un loop foreach
if($search !== FALSE)
{
foreach($search as $fila)
{
?>
<p><a href=""><?php echo $fila->producto ?></a></p>
<?php
}
//en otro caso decimos que no hay resultados
}else{
?>
<p><?php echo 'No hay resultados' ?></p>
<?php
}
}
}
Model:
Código:
public function buscador_productos($abuscar)
{
$this->db->select('*');
$this->db->like('producto',$abuscar,'after');
$resultados = $this->db->get('producto', 12);
if($resultados->num_rows() > 0)
{
return $resultados->result();
//en otro caso devolvemos false
}else{
return FALSE;
}
}