Visualizzazione dei risultati da 1 a 9 su 9

Discussione: search

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

    search

    Ciao...
    devo fare un "cerca nel sito" e il codice che ho incollato qui sotto funziona, solo che i risultati della ricerca li visualizza in un frame, bisogna avere quindi una pagina fatta con i frame.
    Qualcuno mi sa dire come si fa a visualizzare i risultati della ricerca in una nuova pagina e non in un frame.

    Grazie
    Ciao



    <script>
    var tutti = "_and"
    var alcuni = "_or"
    var tipo_ricerca = ""
    var s = 0
    var o = 5
    var copia_risultati = new Array()
    var doc = parent.frames[1].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></head><body bgcolor="white"><hr size="1" noshade>')
    doc.write('<font face="Verdana, Arial, sans" size="3"><div align="center">Spiacente, non ho trovato elementi corrispondenti</div></font><hr size="1" noshade></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><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="white">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade><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>')
    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></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="button" value="precedenti" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s - o) + ', ' + o + ')">')
    }
    if (s + o < array_risultati.length)
    {
    doc.writeln('<input type="button" value="successivi" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s + o) + ', ' + o + ')">')
    }
    doc.write('</div></form>')
    }

    </script>

    <body bgcolor="white">
    <basefont face="Arial, Verdana, sans" size="2">

    <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 NOSTRO DATABASE</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>

    </body>
    </html>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Prova al posto di:
    var doc = parent.frames[1].document

    metti:
    fin = window.open("about:blank")
    var doc = fin.document

    ciao
    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
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970

    Re: search

    Originariamente inviato da luanda
    Ciao...
    devo fare un "cerca nel sito" e il codice che ho incollato qui sotto funziona, solo che i risultati della ricerca li visualizza in un frame, bisogna avere quindi una pagina fatta con i frame.
    Qualcuno mi sa dire come si fa a visualizzare i risultati della ricerca in una nuova pagina e non in un frame.

    Grazie
    Ciao



    <script>
    var tutti = "_and"
    var alcuni = "_or"
    var tipo_ricerca = ""
    var s = 0
    var o = 5
    var copia_risultati = new Array()
    var doc;

    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 = window.open('','doc','');
    doc.open()
    doc.write('<html><head></head><body bgcolor="white"><hr size="1" noshade>')
    doc.write('<font face="Verdana, Arial, sans" size="3"><div align="center">Spiacente, non ho trovato elementi corrispondenti</div></font><hr size="1" noshade></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 = window.open('','doc','');
    doc.open()
    doc.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="white">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade><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>')
    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></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="button" value="precedenti" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s - o) + ', ' + o + ')">')
    }
    if (s + o < array_risultati.length)
    {
    doc.writeln('<input type="button" value="successivi" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s + o) + ', ' + o + ')">')
    }
    doc.write('</div></form>')
    }

    </script>

    <body bgcolor="white">
    <basefont face="Arial, Verdana, sans" size="2">

    <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 NOSTRO DATABASE</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>

    </body>
    </html>
    non so se funge, xò è un'idea

    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    51
    ho provato, ma non funziona. In realtà apre un'altra finestra ma non stampa niente!!!

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Dovresti precisare quale delle due soluzioni hai provato :master:

    ciao
    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
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    51
    ENTRAMBI MI APRONO UNA FINESTRA BIANCA
    CIAO

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ok, NON URLARE.

    usa la soluzione di Francis87 ma correggi:
    doc = window.open('','doc','').document;

    ciao
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    51
    grazie ci provo...ma non urlavo mi son dimenticata di togliere il maiscolo....

    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    51
    Funziona, ma solo se non ci sono risutati dalla ricerca....
    Secondo me c'è qualcosa di sbagliato in questo pezzo di codice

    function stampa_risultati(array_risultati, s, o) {
    var limite = (array_risultati.length < s + o) ? array_risultati.length : (s + o)
    doc = window.open('','doc','').document;
    doc.open()
    doc.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="white">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade><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>')
    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></table>')
    visualizza_pulsanti (array_risultati, s, o)
    doc.write('</body></html>')
    doc.close()
    }


    CIAO

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.