Tengo un HTML con el siguiente INPUT de un Nombre:
Código HTML:
Ver original
El JQuery:
Código Javascript:
Ver original
$(document).ready(function () { //Al escribr dentro del input con id="nomref" $('#nomref').keypress(function () { //Obtenemos el value del input var nomref = $(this).val(); var dataString = 'nomref=' + nomref; //Le pasamos el valor del input al ajax $.ajax({ type: "POST", url: "index.php?ctl=autocompleta_referencias", data: dataString, success: function (data) { //Escribimos las sugerencias que nos manda la consulta $('#suggestions_ref').fadeIn(100).html(data); //Al hacer click en algua de las sugerencias $('.suggest_ref-element a').live('click', function(){ $('.suggest_ref-element a').click(function () { //Obtenemos la id unica de la sugerencia pulsada var id = $(this).attr('id'); var infref = $(this).attr('infref'); //Editamos el valor del input con data de la sugerencia pulsada $('#nomref').val($('#' + id).attr('data')); $('#idreferencia').val($('#' + id).attr('id')); $('#infref').val($('#' + id).attr('infref')); //Hacemos desaparecer el resto de sugerencias $('#suggestions_ref').fadeOut(100); }); }); } }); }); });
El controlador:
Código PHP:
Ver original
<?php public function autocompleta_referencias() { $controlador_principal = new Controlador(); $controlador_principal->Incluir('Modelo_Referencias'); $busco = $_POST['nomref']; $modelo = new Modelo_Referencias(); $sql = "select ref.idreferencia id,rec.nombre nombre, concat('(umc:',umc.nombre,' ',tem.nombre,' ',rec.idseccion,'/',rec.numero,' art:',ref.articulo_proveedor,')') infref from referencias ref join referencias_cabeceras rec on rec.idreferencia_cabecera=ref.idreferencia_cabecera join unidadesmedida umc on ref.idunidadmedida_compra=umc.idunidadmedida join temporadas tem on rec.idtemporada=tem.idtemporada where rec.numero=" . substr($busco, 2, 5) . " and rec.idseccion=" . substr($busco, 0, 2) . " ORDER BY rec.nombre DESC limit 50"; } else { $sql = "select ref.idreferencia id,rec.nombre nombre, concat('(umc:',umc.nombre,' ',tem.nombre,' ',rec.idseccion,'/',rec.numero,' art:',ref.articulo_proveedor,')') infref from referencias ref join referencias_cabeceras rec on rec.idreferencia_cabecera=ref.idreferencia_cabecera join unidadesmedida umc on ref.idunidadmedida_compra=umc.idunidadmedida join temporadas tem on rec.idtemporada=tem.idtemporada where rec.nombre like '" . $busco . "%' ORDER BY rec.nombre DESC limit 50"; } foreach ($params['seleccion'] as $row) { ?> <div class="suggest_ref-element"> <a data="<?php echo utf8_encode(trim($row['nombre'])); ?>" id="<?php echo $row['id']; ?>" infref="<?php echo utf8_encode(trim($row['infref'])); ?>" </a> <?php echo $row['nombre'] . ' ' . $row['infref']; ?> </div> <?php } } }
El problema es que al controlador siempre llega un caracter menos, ejemplo si escribo "PANTALON" llega "PANTALO" y al borrar el campo hacia atras no ejecuta el controlador.
Muchas Gracias a quien pueda ayudarnos.