Foros del Web » Programando para Internet » Javascript »

Resultados array

Estas en el tema de Resultados array en el foro de Javascript en Foros del Web. Hola a todos, y gracias por leerme. Os pongo al día. Tenía un buscador interno con javascript que cogía (y coge) los resultados de arrays. ...
  #1 (permalink)  
Antiguo 13/11/2007, 04:18
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 17 años, 7 meses
Puntos: 12
Resultados array

Hola a todos, y gracias por leerme. Os pongo al día. Tenía un buscador interno con javascript que cogía (y coge) los resultados de arrays. En principio los resultados se mostraban en un popup, pero sabiendo que existe ajax y las modals pues quiero renovarme. El ajax no es problema pues el contenido depende de un div (con id=mostrar) al que envío los resultados. Esta es la programación:

function search(frm) {
//win = window.open("","","width=750,height=525,left=135,t op=85,scrollbars");
document.getElementById('mostrar').innerHTML=(page );
txt = frm.srchval.value.split(" ");
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd[i] = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "")
fnd[i] += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w,n);
fnd[w] = 0;
}
document.getElementById('mostrar').innerHTML="RESU LTADO DE LA BÚSQUEDA<br><br>Aquí texto<br><br><span class='titulo'>Total coincidencias: "+total+"<br><br>"+line;
}

function show(which,num) {
link = item[which][1] + item[which][0];
line = "<a href='"+link+"'>"+item[which][2]+"</a>";
line += item[which][4] + "<br>";
document.getElementById('mostrar').innerHTML=line;
//alert (line);
return 1;
}


He quitado el popup y el parámetro que se pasaba a la función show que abría el popup y mostraba los resultados de la variable line. El problema es sencillo y viene en las líneas en negrita: quiero que la variable line me muestre todos los resultados y así sólo muestra 1. En cambio el alert sí que lo hace. He puesto la línea que rellena el div (en negrita) dentro del for y nada, también dentro de la función show y tampoco, la verdad es que no sé tanto como para resolverlo y seguro que es fácil. Si quereís todo el html aquí abajo el enlace, aunque supongo que no es necesaria, fijo que es un detalle tonto.

http://senduit.com/f2b46c

Muchas gracias
__________________
Chanante!
  #2 (permalink)  
Antiguo 13/11/2007, 04:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Resultados array

Hola:

Cada vez que llamas a tu función show, estás asignando algo nuevo, y supongo que lo que quieres es encadenarlo, así que deberías tener la variable line inicializada a cadena vacía antes de empezar el bucle, y realizar en la función show una concatenación:

function search() {
...
line = "";
...
}

function show(which,num) {
link = item[which][1] + item[which][0];
line += "<a href='"+link+"'>"+item[which][2]+"</a>";
line += item[which][4] + "<br>";
//document.getElementById('mostrar').innerHTML=line;
//alert (line);
return 1;
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/11/2007, 05:21
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 17 años, 7 meses
Puntos: 12
Re: Resultados array

Joder, que eficiente. Muchas gracias ha funcionado a la perfección.

Gracias
__________________
Chanante!
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 19:07.