INDICE

TROVARE E COLLEGARE UN DOCUMENTO - pag.1


Abbiamo già visto come trovare una stringa in un documento.

Questo trucco, invece, consente di creare dinamicamente o il link ad un documento esistente o il messaggio "documento non trovato": in effetti, comunque, non abbiamo ritenuto opportuno creare effettivmente le pagine!

Esempio funzionante
Cognome:

Supponiamo di avere il seguente elenco di nomi: Alfieri, Foscolo, Manzoni, Leopardi, Carducci, Pascoli.
Se inseriamo uno dei nomi nella casella di testo sovrastante compare la pagina relativa con l'opportuno link, altrimenti compare l'avviso Documento non trovato.

NOTA BENE -
  1. Non è indispensabile scrivere il cognome conservando maiuscole e minuscole ma, ad esempio, oltre che Alfieri, è anche possibile scrivere alfieri, oppure ALFIERI, e così via.
  2. E' prevista un'unica occorrenza per ogni nome.



SPIEGAZIONE

  1. Prepariamo un array che contenga la lista dei cognomi degli autori ad esempio parole= new Array('Alfieri','Foscolo','Manzoni','Leopardi','Carducci','Pascoli');
  2. memorizziamo le pagine con dei nomi collegati agli elementi degli array, ad esempio Alfieri.htm,Foscolo.htm... e così via;
  3. inseriamo uno script fra i tag <head> ed </head>
    Codice:

    <script type="text/javascript">
    /*dichiarazione della variabile strutturata di nome parole, nella quale sono memorizzati i nomi degli autori:
     sostituirla con la vostra lista*/
      parole= new Array('Alfieri','Foscolo','Manzoni','Leopardi','Carducci','Pascoli')
      /*Dichiarazione della funzione di nome "cerca". Dentro la parentesi abbiamo scritto il parametro di nome "s"
      che, come vedremo, fornirà il valore di input alla funzione stessa.
      Se il termine di ricerca, ad esempio, è Alfieri, viene creato dinamicamente un link ala pagina Alfieri.htm*/
      function cerca(s){
         collega=''
         flag=false
         for (i=0; i<parole.length;i++){
           if (s.toUpperCase() == parole[i].toUpperCase()){ 
            collega='<a href="'+parole[i] + '.htm"'+'>'+ parole[i] +'</a><br>'
            flag=true
            break
           } 
         }
         if (flag==false){
         collega="documento non trovato"
      }
      /*Viene scritto il link nell'elemento di nome Risulta attraverso il metodo innerHTML.
      Risulta è il nome dello span che inseriremo nella pagina.
      Le diverse ipotesi sono per i diversi browser*/
      if(document.all)
       {
       document.all('Risulta').innerHTML=collega;
       }
      else if(document.getElementById){
      document.getElementById("Risulta").innerHTML = collega
      }
     else {
       alert("il tuo browser non supporta questo metodo")
     } 
     }
    </script>
    

    Pagina 2     


    INDICEINDIETRO

    ©2010 www.webfract.it