Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Autocomplete de varios campos

Estas en el tema de Autocomplete de varios campos en el foro de Drupal en Foros del Web. Hola otra vez, Tengo unas fichas de películas, con un content type llamado peliculas. Cuando el usuario da de alta una pelicula puede rellenar el ...
  #1 (permalink)  
Antiguo 20/12/2011, 11:08
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 6
Autocomplete de varios campos

Hola otra vez,

Tengo unas fichas de películas, con un content type llamado peliculas. Cuando el usuario da de alta una pelicula puede rellenar el nombre del cine, dirección, geolocation y algo más.
En cck tengo un grupo llamado ubicacion, donde estan esas casillas.
Lo que necesito es que al rellenar el primer campo ubicación (nombre del cine), que funciona con cck autocomplete, me rellene el resto de campos si el lugar ya está dado de alta.

Estoy completamente perdido. No se si tengo que crear un nuevo tipo de contenido ubicacion o si hay algun modulo para gestionar lugares. Ni idea.

Gracias de antemano,

**Drupal v 6.22
  #2 (permalink)  
Antiguo 20/12/2011, 11:37
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 6
Respuesta: Autocomplete de varios campos

Por cierto me olvidaba de una cosa, ahora mismo debe haber unas 1000 peliculas metidas con la vieja formula que he comentado. ¿Tendré que cambiar a mano todas las ubicaciones?
  #3 (permalink)  
Antiguo 20/12/2011, 12:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 6
Respuesta: Autocomplete de varios campos

Mas info:

Estos son los campos que tengo actualmente:

field_nombre_lugar_value
field_direccion_value
field_provincia_value
field_geolocalizacion_lat
field_geolocalizacion_lng
field_geolocalizacion_lat_sin
field_geolocalizacion_lat_cos
field_geolocalizacion_lng_rad

se me ocurre que podría hacer lo que necesito con la opción default value, poniendo una consulta a la base de datos en plan:
1- consultar todos los field_nombre_lugar_value y meterlos en un array.
2- si el nombre introducido en field_nombre_lugar_value (recuerdo que tiene el cck autocomplete) es igual a alguno del Array que he montado, hace otra consulta para obtener los datos
3- si existe la ubicacion que autocomplete con esos datos.

Pero claro igual se sobrecarga demasiado cuando haya 20000 ubicaciones diferentes, porque esto debería hacerlo en cada campo no?

¿Que opinais?
  #4 (permalink)  
Antiguo 21/12/2011, 04:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 6
Respuesta: Autocomplete de varios campos

SOLUCIÓN!!!
Lo pongo por pasos:
1- Crear un views customfield para hacer un include de un script php externo (lo guardo en sites/all/script/).
2- El Script php lleva sólo un script de javascript con sus etiquetas <script type=javascript>....
3-En el script js, pongo el script que hay en misc/autocomplete (copiar y pegar), así sobrescribe el que tiene drupal.
3- en mi script autocomplete cambiamos esto
Código PHP:
/**
 * An AutoComplete object
 */

Drupal.jsAC = function (inputdb) {
  var 
ac this;
  
this.input input;
  
this.db db;
  $(
this.input)
    .
keydown(function (event) { return ac.onkeydown(thisevent); })
    .
keyup(function (event) { ac.onkeyup(thisevent); })
    .
blur(function () { ac.hidePopup(); ac.db.cancel(); });

}; 
por esto otro

Código PHP:
/**
 * An AutoComplete object
 */

Drupal.jsAC = function (inputdb) {
  var 
ac this;
  
this.input input;
  
this.db db;
  $(
this.input)
    .
keydown(function (event) { return ac.onkeydown(thisevent); })
    .
keyup(function (event) { ac.onkeyup(thisevent); })
    .
blur(function () { ac.hidePopup(); ac.db.cancel(); ejecutarPHP(ac.db.uri);});

}; 
4- creamos la funcion ejecutarPHP
Código PHP:
function ejecutarPHP(variable){
    if (
variable.indexOf("field_nombre_de_la_ubicacion") != -1){//si es mi casilla principal
//ejecuta un php con $.post
}else {
//no hacer nada mas

5- en el php hacemos las consultas a la base de datos y nos devuelve los datos de los siguentes campos, se los ponemos a los campos correspondientes y listos, tenemos un perfecto autocomplete múltiple.

Etiquetas: campos, cck, contenido, modulo, tema, tipo, autocompletado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.