Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Cerca Eventi, motore e "database" (problema)

    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 e lo sto adattando alle mie esigenze. Ci sono riuscito, ho effettuato delle modifiche e delle aggiunte, funziona tutto perfettamente. Ma... è sorto un problema. Andiamo con ordine.



    _________________________________________________

    Questa è la mia pagina di ricerca .htm

    codice:
    <html>  <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript" src="db_script.js"></script> <script type="text/javascript" src="db_eventi.js"></script>  <title>CERCA NEL DATABASE</title> </head>  <body>  <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"><font face="Arial">CERCA NEL DATABASE</font></p>  <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"></p>  <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"><font face="Arial" color="#FF0000">(Nota: il modulo di ricerca é case sensitive,</font></p>  <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"><font face="Arial" color="#FF0000">quando digiti fai attenzione alle minuscole/maiuscole, agli spazi, ai simboli, alla punteggiatura)</font></p>  <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"></p>  <form NAME="SearchForm" onSubmit="TypeNext();return false">   <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"><font   face="Arial">Qui la tua ricerca:</font><big> </big><input NAME="Text"   ROWS="1" COLS="20" size="51"> <input NAME="FindNext" TYPE="submit" VALUE="Cerca"> <input   NAME="NewSearch" TYPE="Reset" VALUE="Nuova ricerca" onClick="ResetSearch();"></p>   <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"><font   face="Arial">Ricerca per:</font><big> </big><select VALUE="field" SIZE="1">     <option>giorno </option>     <option>mese </option>     <option>anno </option>     <option>evento </option>     <option>nome </option>     <option>ora </option>     <option>città </option>     <option>provincia </option>   </select></p>   <p style="margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0"></p>   
    
    <font FACE="Arial" color="#000000">Risultato:</font>
       <input NAME="Result1" ROWS="1" COLS="15" SIZE="1"><input NAME="Result2" ROWS="1" COLS="15"   SIZE="1"><input NAME="Result3" ROWS="1" COLS="15" SIZE="2"> <input NAME="Result4"   TYPE="TEXT" ROWS="1" COLS="15" SIZE="17"> <input NAME="Result5" TYPE="TEXT" ROWS="1"   COLS="31" SIZE="25"> <input NAME="Result6" TYPE="TEXT" ROWS="1" COLS="5" SIZE="5"> <input   NAME="Result7" TYPE="TEXT" ROWS="1" COLS="25" SIZE="20"> <input NAME="Result8" TYPE="TEXT"   ROWS="1" COLS="31" SIZE="3"></p> </form> </body> </html>


    _________________________________________________

    Questo è il javascript (db_script.js):

    codice:
    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):

    codice:
    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 (esempio) il mese di ottobre, vale a dire il 10 (vedi mio "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...

    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)? Tenete presente che gli eventi in un solo mese possono essere anche 30 o 40. (il database che ho preparato con 6 eventi, il db_eventi.js, è solo una prova)

    Si può fare? Se sì... cosa devo aggiungere?

    PS: so benissimo che con php, asp, ecc. tutto diventa più facile, ma io non conosco nulla di quei linguaggi...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Come da regolamento, ti ho lasciato una sola discussione... ma sappi che contestualmente ho chiesto all'amministrazione di valutare il tuo ban
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Me ne sono accorto solo adesso. Vedo che il mio messaggio appare più volte nel forum. Chiedo venia (la cosa non è voluta).

    Oggi pomeriggio quando cliccavo "invia" per postare il mio messaggio nel forum, non succedeva nulla. Ho pure provato a disconnettermi e a riconnettermi, ripetendo le operazioni. Ma continuava a non accettare il mio messaggio e non mi diceva perchè. Cliccavo e rimaneva tutto immobile. Adesso però ne vedo 4 tutti uguali. Scusatemi, ripeto... non è voluto.
    (se potete cancellate gli altri)

  4. #4
    Originariamente inviato da br1
    Come da regolamento, ti ho lasciato una sola discussione... ma sappi che contestualmente ho chiesto all'amministrazione di valutare il tuo ban
    Ciao br1.
    Ho appena risposto. Chiedo ancora scusa.
    Se il regolamento prevede il ban, bannatemi (ne avete il diritto). Mi registrerò e vedrò di fare più attenzione. Ma ripeto, non è stato voluta la cosa.

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ok, dicamo che ha toppato la supercazzola con scappellamento a sinistra... e diamo la colpa alla cache del browser

    Benvenuto sul forum
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Originariamente inviato da br1
    Benvenuto sul forum
    Grazie.

  7. #7
    Scusate ragazzi, ma cavolo... 50 visualizzazioni di questo thread (toglietene una decina delle mie), e nessuno che sia in grado di dare una risposta. Pensavo di essere in un forum di persone competenti in materia (javascript), ma a quanto pare... nessuno sa rispondere.

    Non mi sembra di aver chiesto di postarmi la soluzione al problema, nel senso... pagine pronte e confezionate, o codice pronto all'uso. Ho chiesto semplicemente se la cosa è fattibile, se esiste un'alternativa, e se sì... cosa aggiungere (come lavorarci). Ho chiesto troppo, oppure qui dentro sono tutti al mio livello? (sul tema javascript non sono navigato al 100%)

    Almeno ditemi se si può fare o se non si può fare. Scusate lo "sfogo". Uffa...

    Anche perchè credo che molti "utenti/cybernauti" siano interessati ( ) a questa sorta di motore di ricerca interno. Dai ragazzi, cavolo... non vi è stata chiesta la luna. Ma una semplice risposta. Ciao

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: Cerca Eventi, motore e "database" (problema)

    Originariamente inviato da EtaBeta89
    PS: so benissimo che con php, asp, ecc. tutto diventa più facile, ma io non conosco nulla di quei linguaggi...
    Il problema e' tutto qui... con molto meno impegno si puo' fare una procedura ajax che interroghi il server che ospita il database (aggiornato in tempo reale mediante poche semplici altre pagine e non editato a manina sul tuo pc dovendolo poi trasferire sul server)... ma bisogna conoscere un linguaggio lato server

    Forse non c'e' una folla interessata alla soluzione che cerchi, dal mio punto di vista e' una fatica sprecata per realizzare una cosa poco pratica che si risolverebbe in un mero esercizio di programmazione. Ma magari qualcuno interessato prima o poi passa

    Scusa la franchezza.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.