Pregunta

Tengo un widget de autocompletar jQuery UI en una forma y me gustaría preseleccionar su valor a partir de una base de datos. Mi autocompletar funciona de la siguiente manera: el identificador es un número, tha etiqueta y el valor son los mismos y son una concatenación de ID + "-" + descripción. Cuando se selecciona un valor de la función de autocompletar, el valor de un campo oculto se establece en el valor de ID. A continuación, el valor del campo oculto se guarda en la base de datos cuando se envía el formulario. Cuando el usuario entra de nuevo en la página de edición, lo que necesito para recargar el valor de la BD: He definido el valor del campo idden de nuevo y luego me gustaría precompilar el valor del widget de autocompletar con la concatenación de ID + "-" + descripción tomada forma la db. Creo que debería desencadenar el caso de la selección de una fila de la función de autocompletar, pero no sé cómo hacerlo. ¿Tienes alguna idea? Gracias Aquí está el código de la función de autocompletar:

$('#codice_contratto').autocomplete({
    source: 'do_contratto.php',
    select: function(event, ui) {
                $('#id_contratto').val(ui.item.id);
            }
});
¿Fue útil?

Solución

En el código del lado del servidor que devuelve la página para editar, recomendaría simplemente el valor tanto de la caja de texto con autocompletado, así como el campo oculto a sus valores correctos como su devuelto por el servidor. Eso sería una solución de servidor, y el código HTML sería algo como esto:

<input type="textbox" id="condice_contratto" value="1 - the description" />
<input type="hidden" id="id_contratto" value="1" />

El plug-in de jQuery autocompletado trabajos con gracia cuando está predeterminado el valor del elemento. En realidad no hay una noción de 'seleccionar' un artículo en ella per se. Simplemente monta en la parte superior de un cuadro de texto y establece su valor con una gran cantidad de interfaz de usuario elegante.

Si necesita una solución del lado del cliente, simplemente hacer algo como esto:

$(document).ready(function() {
   $('#condice_contratto').val(current_id + ' - ' + current_description);
   $('#id_contratto').val(current_id);
}

Esto supone que las variables current_id y current_description se establecen en sus valores correctos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top