Salve ragazzi/e.
Mi sto costruendo una sorta di motore di ricerca per eventi (per lo spettacolo). E' uno script (.js) che ho trovato in rete qualche giorno fa e lo sto adattando alle mie esigenze. Ci sono riuscito, ho fatto molte modifiche ad aggiunte, funziona tutto perfettamente. Ma... è sorto un problema. Andiamo con ordine.
_________________________________________________
Questa è la mia pagina di ricerca .htm
_________________________________________________
Questo è il javascript (db_script.js):
function createArray(length)
{
this.length = length;
for( var i = 1; i<= length; i++)
this[i] = null;
return this;
}
var Entries = 6;
var Separator = ";"
var Fields = 8;
var iGiorno = 1;
var iMese = 2;
var iAnno = 3;
var iEvento = 4;
var iNome = 5;
var iOra = 6;
var iCittà = 7;
var iProvincia = 8;
var LastMatch = 0;
function GetField(Entry,number)
{
var Out = "";
var FirstChar;
var LastChar;
FirstChar = 0;
LastChar = Entry.indexOf(Separator) ;
if (number == 1)
{
Out += Entry.substring(FirstChar,LastChar);
return Out;
}
if (number == Fields)
{
Out+= Entry.substring(Entry.lastIndexOf(Separator) + 1,Entry.length)
return Out;
}
for(var i =2; i <= number; i++)
{
FirstChar = LastChar + 1;
LastChar = Entry.indexOf(Separator, FirstChar);
}
Out += Entry.substring(FirstChar,LastChar);
return Out;
}
function FindNext(String, number)
{
var CompareWith = "";
for(var i = LastMatch + 1; i <=Data.length; i++)
{
var buf = GetField(Data[i],number);
var bl = parseInt(buf.length);
var sl = parseInt(String.length);
if(bl > sl)
{
CompareWith = buf.substring(0,sl );
}
else
{
CompareWith = buf;
}
if (CompareWith == String)
{
LastMatch = i;
return i;
}
}
LastMatch = 0;
return 0;
}
function ResetSearch()
{
LastMatch = 0;
for(var i = 1; i <=Fields; i++)
{
document.SearchForm.elements[i+3].value = "";
}
}
function TypeNext()
{
var SearchString = document.SearchForm.Text.value;
var index =document.SearchForm.elements[3].options.selectedIndex + 1;
var j = FindNext(SearchString, index);
if (j == 0)
{
alert("ATTENZIONE! C'é un problema: \n \n- hai sbagliato la digitazione, riprova \n- non hai selezionato la casella *Ricerca per:* \n- il dato che stavi cercando non é presente nel database \n \n Oppure: \n- non ci sono altri dati disponibili, la ricerca é terminata.");
ResetSearch();
return;
}
var buf = "";
for(var i = 1; i <=Fields; i++)
{
buf = GetField(Data[j],i);
document.SearchForm.elements[i+3].value = buf;
}
}
_________________________________________________
Questo è il "database" degli eventi (db_eventi.js):
var Data = new createArray(Entries);
Data[1] = "09;10;2010;Voci in Tour;Red-A Parker;21.30;Lodi;(MI)";
Data[2] = "09;10;2010;Palatenda;Rumble Mumble Band;22.00;Tortona;(AL)";
Data[3] = "10;10;2010;Voci in Tour;Renato Saracina & Friend's;20.45;Brisighella;(RA)";
Data[4] = "27;10;2010;Rassegna teatrale;Fliness Quartet;21.30;Arezzo; ";
Data[5] = "15;11;2010;Canti in villa;Scuola Vinicio Galbini, Draghi;20.00;Rovereto;(TN)";
Data[6] = "30;11;2010;Motoraduno;Red-Blue Rider 1987;14.00;Brisighella;(RA)";
_________________________________________________
IL PROBLEMA
Quando effettui una ricerca per mese, e ti capita il mese di ottobre, vale a dire il 10 (vedi esempi su database), per poter visualizzare tutti gli eventi del mese 10 hai due possibilità: 1) continui a cliccare sul pulsante "Cerca" e ad uno ad uno visualizzi i vari eventi del mese di ottobre (finchè si esauriscono); 2) continui a premere il tasto invio nella tua tastiera (finchè si esauriscono gli eventi).
E QUI VI CHIEDO AIUTO...
Non esiste un'alternativa? Ad esempio, quando cerco il mese 10, non è possibile visualizzare tutti gli eventi in un colpo solo (tutti in un'unica lista sotto il Risultato)? Se sì... come si fa? Vi ricordo che non sono una "cima" in tema javascript. E tenete