Visualizzazione dei risultati da 1 a 7 su 7

Discussione: motore di ricerca

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    128

    motore di ricerca

    qualcuno sa dirmi come fare un motore di ricerca per un intero sito che però non sfrutti linguaggi come asp o php????

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Senza linguaggi lato server ....

    Qualcuno ne aveva proposto uno un po' di tempo fa. Prova a fare una ricerca nel forum o tra gli script.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Non mi ricordo dove ne come sono riuscito ad averlo, ma sul mio sito c'è un motore di ricerca in js che sfruttando i frame effettua una ricerca in un file .js esterno e visualizza i risultati impostandoli come un motore di ricerca in un linguaggio lato-server.
    Ora provo a prenderlo e lo posto.

  4. #4
    Questa è la pagina principale che contiene i frame:
    =================
    <html>
    <head>
    <title>Cerca nel sito</title>
    </head>
    <frameset rows="80,*" border="0">
    <frame src="nav.html" name="alto">
    <frame src="help.html" name="bot" target="_top">
    </frameset>
    </frameset>
    <body>
    </body>
    </html>
    ====================

    Nel frame di sopra va il codice vero e proprio e va richiamato il file .js esterno:

    ======================
    <script language="javascript" src="../_files/db.js"></script>
    <script language="javascript">

    var tutti = "_and"
    var alcuni = "_or"
    var tipo_ricerca = ""
    var s = 0
    var o = 10
    var copia_risultati = new Array()
    var doc = parent.frames[2].document

    function filtro (query) {
    if (query.charAt(0) == "+")
    {
    query = query.substring (1, query.length)
    tipo_ricerca = tutti
    }
    else
    {
    tipo_ricerca = alcuni
    }
    while (query.charAt(0) == " ") query = query.substring(1, query.length)
    document.forms[0]._query.value = query
    while (query.charAt(query.length - 1) == " ") query = query.substring(0, query.length - 1)
    document.forms[0]._query.value = query
    formatta_stringa (query)
    }

    function formatta_stringa (query) {
    var stringa_formata = query.split (" ")
    if (tipo_ricerca == "_or")
    cerca_or (stringa_formata)
    else
    cerca_and (stringa_formata)

    }

    function cerca_or (stringa_formata) {
    var matrix = new Array()
    for (i = 0; i < db.length; i++)
    {
    var stringaConfronto = db[i].toUpperCase()
    var stringaUtile = stringaConfronto.substring(0, stringaConfronto.lastIndexOf("|"))
    for (j = 0; j < stringa_formata.length; j++)
    {
    var stringaUtente = stringa_formata[j].toUpperCase()
    if (stringaUtile.indexOf(stringaUtente) != -1)
    {
    matrix[matrix.length] = db[i]
    break
    }
    }
    }
    verifica(matrix)
    }

    function cerca_and (stringa_formata) {
    var matrix = new Array()
    for (i = 0; i < db.length; i++)
    {
    var coincidenza = true
    var stringaConfronto = db[i].toUpperCase()
    var stringaUtile = stringaConfronto.substring(0, stringaConfronto.lastIndexOf("|"))
    for (j = 0; j < stringa_formata.length; j++)
    {
    var stringaUtente = stringa_formata[j].toUpperCase()
    if (stringaUtile.indexOf(stringaUtente) == -1)
    coincidenza = false
    }
    if (coincidenza)
    matrix[matrix.length] = db[i]
    }
    verifica(matrix)
    }

    function verifica (matrix) {
    if (matrix.length == 0)
    {
    doc.open()
    doc.write('<html><head><style type="text/css">body{ scrollbar-face-color: #FFFFFF; scrollbar-arrow-color: #3300FF; scrollbar-3dlight-color: #FFFFFF; scrollbar-base-color: #66CCFF; scollbar-darkshadow-color: #3300FF;}</style></head><body ALINK="#330066" VLINK="#CC0000" TEXT="#000000" LINK="#FF0000" style="background-color: #66CCFF"><hr size="1" noshade color="#FFFF00">')
    doc.write('<font face="Verdana, Arial, sans" size="3"><div align="center">Spiacente, non ho trovato elementi corrispondenti</div></font><hr size="1" noshade color="#FFFF00"></body></html>')
    doc.close()
    }
    else
    {
    array_risultati = matrix.sort()
    stampa_risultati(array_risultati, s, o)
    }
    }

    function stampa_risultati(array_risultati, s, o) {
    var limite = (array_risultati.length < s + o) ? array_risultati.length : (s + o)
    doc.open()
    doc.write('<html><head><style type="text/css">body{ scrollbar-face-color: #FFFFFF; scrollbar-arrow-color: #3300FF; scrollbar-3dlight-color: #FFFFFF; scrollbar-base-color: #66CCFF; scollbar-darkshadow-color: #3300FF;}</style><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><base TARGET="_top"></head><body ALINK="#330066" VLINK="#CC0000" TEXT="#000000" LINK="#FF0000" style="background-color: #66CCFF">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade color="#FFFF00"><tr><td><font face="Verdana, Arial, sans" size="2">Chiave di ricerca: ' + '' + parent.frames[0].document.forms[0]._query.value + '' + '
    Risultati:' + '' + ' da ' + (s + 1) + ' a ' + limite + ' di ' + array_risultati.length + '</font>' + '
    <hr size="1" noshade color="FFFF00">')
    for (i = s; i < limite; i++)
    {
    var splitta = array_risultati[i].split("|")
    doc.write('<tr><td><dl><font face="Verdana, Arial, sans" size="2">' + splitta[0].link(splitta[2]) + '<dd>' + splitta[1] + '</font>')
    }
    doc.write('<tr><td><hr size="1" noshade color="#FFFF00"></table>')
    visualizza_pulsanti (array_risultati, s, o)
    doc.write('</body></html>')
    doc.close()
    }

    function visualizza_pulsanti(array_risultati, s, o) {
    doc.write('<form><div align="center">')
    if (s > 0)
    {
    doc.writeln('<input TYPE="image" value="Precedenti" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s - o) + ', ' + o + ')" SRC="03.gif">')
    }
    if (s + o < array_risultati.length)
    {
    doc.writeln('<input type="image" value="Successivi" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s + o) + ', ' + o + ')" SRC="01.gif">')
    }
    doc.write('</div></form>')
    }
    </script>
    ==================
    Attenzione però il codice contiene delle personalizzazioni che hoinserito per adattarlo allo stile del mio sito; le due immagini che si vedono se i risultati non vanno in una pagina, sono due frecce che provvedo ad inserire nel forum.
    Nel tag body di questa pagina scrivi questo:
    ====================
    <form name ="cerca" onSubmit="filtro(document.forms[0].elements[0].value); return false">
    <div align="center">
    <table width="550" border="0">
    <tr>
    <td width="500"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CERCA
    NEL SITO</font><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <input type="text" name="_query" size="30">
    </font></td>
    <td width="50">
    <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">HELP</font></div>
    </td>
    </tr>
    </table>

    </div>
    </form>

    ==================

    Questa è l'altra pagina contenuta nel frame in basso:
    =================
    <div align="center">
    <table width="550" border="0">
    <tr>
    <td colspan="3" valign="top" height="0">
    <hr noshade size="1">
    </td>
    </tr>
    <tr>
    <td height="13" valign="top" width="49%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">per
    cercare almeno una parola...</font></td>
    <td width="2%" valign="top" height="13"></td>
    <td width="49%" valign="top" height="13"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#F0000">per
    cercare esattamente pi&ugrave; parole...</font></td>
    </tr>
    <tr>
    <td colspan="3" valign="top" height="0">
    <div align="center">
    <hr align="center" size="1" noshade>
    </div>
    <div align="center"></div>
    </td>
    </tr>
    <tr>
    <td valign="top" width="49%">


    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">...inserite
    le parole da cercare, senza segni di interpunzione, nella casella CERCA
    NEL NOSTRO DATABASE, poi premete INVIO.



    </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Per
    esempio, digitando:

    shopping televisori

    verranno visualizzati tutti i record che contengono almeno uno dei due
    termini.</font></p>
    </td>
    <td valign="top" width="2%"></td>
    <td valign="top" width="49%">


    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">...digitate
    le parole da cercare, senza segni di interpunzione, nella casella CERCA
    NEL NOSTRO DATABASE facendole precedere dal segno &quot;+&quot;, poi
    premete INVIO.</font></p>


    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Per esempio,
    digitando:

    + shopping televisori

    verranno visualizzati tutti i record che contengono entrambi i termini.</font></p>
    </td>
    </tr>
    <tr>
    <td colspan="3" valign="top" height="10">
    <div align="center">
    <hr noshade size="1">
    </div>
    </td>
    </tr>
    <tr>
    <td colspan="3" valign="top" height="2">
    <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FF0000" STYLE="font-variant: small-caps">Attenzione: maiuscole e minuscole non influiscono sulla ricerca.</font></div>
    </td>
    </tr>
    <tr>
    <td colspan="3" valign="top" height="12">
    <hr align="center" noshade size="1">
    </td>
    </tr>
    </table>
    </div>
    =====================
    Come puoi vedere questa pagina contiene solo una descrizione.
    Immagini allegate Immagini allegate

  5. #5
    Ecco l'altra immagine da inserire.
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    128
    provo e poi ti faccio sapere grazie

  7. #7
    Scusa ma mi ero dimenticato di dirti che la variabile
    var doc = parent.frames[2].document
    va modificata in
    var doc = parent.frames[1].document
    in quanto io ho aggiunto un frame che in quest'esempio ho tolto in quanto non c'entra nulla con l'esempio che ti ho fatto.

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.