• User

    motore di ricerca

    Ciao a tutti,
    sto cercando di inserire nel mio sito un motore di ricerca interno. a questo indirizzo slpcislfoggia.it/search/cerca.asp è possibile vedere la pagina in costruzione.
    Facendo una ricerca per esempio "recapito" le news vengono regolarmente estratte dal db purtroppo il collegamento non visualizza la notizia, in pratica non riesco a collegare l'ID.
    Questo il codice della pagina:
    <%@LANGUAGE = JScript%>
    <%
    Response.Buffer = true;
    var Cn = new ActiveXObject("ADODB.Connection");
    Cn.Open("driver={Microsoft Access Driver (.mdb)};dbq=" + Server.MapPath("/mdb-database/news.mdb"));
    var testo = new String(Server.HTMLEncode(Request.Form("cerca")));
    var r_testo = testo.replace(/'/g,"''");
    var cerca = r_testo.split(" ");
    var sql = "SELECT * FROM tblnews WHERE ";
    for (var i=0; i<cerca.length; i++)
    {
    if (i > 0) sql += " AND";
    sql += " news_item LIKE '%" + cerca
    + "%'";
    }
    sql += " ORDER BY news_title";
    var Mostra = Cn.Execute(sql);
    %>
    <html>
    <head>
    <title>Cerca</title>
    <basefont size="2" face="Verdana">
    </head>
    <body link="Blue" alink="Red" vlink="Blue">
    <h3>
    <b>Cerca</b> in costruzione<form method="post" action="cerca.asp">
    <input type="text" name="cerca" size="50" value="<%cerca != "undefined" ? Response.Write(testo) : Response.Write("")%>">
    <input type="submit" value="Cerca">
    </form>
    </h3>
    <%if (testo != "undefined") {%>
    <p><b>Risultati della ricerca per il termine <font color="Red"><%=testo%></font></b></p>
    <%
    if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
    {
    Response.Write("<p>Inserire un termine per effettuare una ricerca</p>");
    }
    else if (Mostra.EOF)
    {
    Response.Write("<p>Nessun risultato</p>");
    }
    else
    {
    while (!Mostra.EOF)
    {
    with (Response)
    {
    Write("<p>");
    Write("<a href='" + Mostra("News_title") + "' target='_blank'>" + Mostra("News_title") + "</a><br>");
    Write(Mostra("News_title") + "<br>");
    Write("<font color='Green'>" + Mostra("Short_news") + "</font>");
    Write("</p>");
    }
    Mostra.MoveNext();
    }
    }
    %>
    <%}%>
    </body>
    </html>
    <%Cn.Close()%>


  • User

    un momento ci sto per arrivare facendo così:
    Write("<a href='../default.asp?op=notiz_beppe&NewsID=" + Mostra("News_ID") + "' target='_blank'>" + Mostra("News_title") + "</a>

    adesso la news viene aperta in una nuova pagina, ci lavoro ancora e faccio sapere, per il momento ciao.


  • User

    con le modifiche apportate la pagina funziona correttamente.
    Quando però voglio includerla i localhost ho questo primo errore:
    Tipo di errore:
    Active Server Pages, ASP 0140 (0x80004005)
    Come primo comando della pagina ASP specificare il comando @
    /cisl/search/cerca.asp, line 1

    elimino la riga corrispondente e appare il secondo errore:
    Tipo di errore:
    Errore di compilazione di Microsoft VBScript (0x800A0401)
    Prevista fine istruzione
    /cisl/search/cerca.asp, line 4, column 22
    Response.Buffer = true;

    come posso risolvere?


  • User

    non c'è proprio nessuno che ha voglia di aiutarmi?


  • User

    Ciao,

    Non puoi eliminare la prima riga.. senza quella non ti andrà mai la pagina.
    Hai provato a mettere uno spazio tra @ e L?
    Cioè <%@LANGUAGE = JScript%> diventerebbe <%@ LANGUAGE = JScript %>

    Facci sapere con questa modifica ti da ancora problemi alla prima riga
    :ciauz:


  • User

    ho risolto gran parte dei problemi adesso lo script è composto da una pagina cerca che rimanda alla pagina risultati.
    la pagina cerca.asp è inclusa nella tabella centrale della pagina di default e contiene il seguente form:
    <form action="cerca/risultati.asp" method="get">
    <table width="500" height="100" Align="center" vAlign="center">
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <font class="font" style="font-size: 10.5pt; font-weight:700">Cerca nel Sito</font>
    </font>
    </td>
    </tr>
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <input type="text" name="srch" value="" size="50">
    </font>
    </td>
    </tr>
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <input type="submit" value="Clicca per iniziare la Ricerca" style="font-family: Tahoma; font-size: 9pt; border-style: solid; border-width: 0px; background-color:#0F931D; color:#FFFFFF; font-weight:bold">
    </td>
    </tr>
    </table>
    </form>
    vorrei che la pagina risultati venga inclusa nella pagina di default come cerca.asp, attualmente si apre in una nuova pagina.
    Ci ho provato così:
    <a href="default.asp?az=cercanelsito">
    senza risultati, come fare?
    Ringrazio anticipatamente chi vorrà darmi aiuto


  • Super User

    @brontolone said:

    <a href="default.asp?az=cercanelsito">

    Dove lo hai messo questo? Comunque prova a usare il target del form, se fai target="_blank" apre una nuova pagina, prova allora target="_top"


  • User

    ciao cali1981, non uso il target perchè la pagina di default.asp è costruita con una semplica tebella è priva di frame e iframe. I collegamenti li faccio nel seguente modo, nella pagina dove appare il file di inclusione uso:
    <%end if
    if request.QueryString("az")="search" then%>
    <!--#include file="search/cerca.asp" -->
    <%end if
    menre il collegamento lo faccio usando:
    <a href="default.asp?az=search">
    nello specifico dopo aver inserito e visualizzato correttamente la pagina cerca allo stesso modo vorrei inserire la pagina risultati.asp con il seguente collegamento nel form:
    <form action="cerca/risultati.asp" method="get">
    purtroppo non va, questo il collegamento per vedere il lavoro:
    slpcislfoggia.it/default.asp?az=search attendo tue, ciao.


  • Super User

    Non puoi includere in result il resto del sito?


  • User

    ho risolto creando un evento onclick sull'input, grazie lo stesso per aver risposto.


  • User

    purtroppo credevo di aver risolto, devo dire che credo sia la strada giusta ma non riesco a venirne a capo.
    riparto da dove tutto funziona:
    questa la pagina cerca.asp (slpcislfoggia.it/default.asp?az=search) che ha queste poche righe di codice
    <form action="search/risultati.asp" method="get">
    <table width="500" height="100" Align="center" vAlign="center">
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <font class="font" style="font-size: 10.5pt; font-weight:700">Cerca nel Sito</font></font></td>
    </tr>
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <input type="text" name="srch" value="" size="50">
    </font>
    </td>
    </tr>
    <tr>
    <td width="100%" Align="center">
    <font face="Tahoma">
    <input type="submit" value="Clicca per iniziare la Ricerca"></td>
    </tr>
    </table>
    </form>
    inserendo una parola di ricerca x es. "recapito" si apre i una nuova pagina risultati.asp, ebbene io vorrei che venga visualizzata come cerca.asp
    Ho visto guardando altri siti che il risultato che io vorrei ottenere è possibile raggiungerlo usando la funzione javascript MM_ ecc. ma non ho trovato spiegazioni sull'uso.
    HELP ME!


  • User

    non so quante prove ho fatto ma non ne vengo a capo.

    Qualcuno può consigliarmi un'alternativa?
    Grazie anticipatamente a chi vorrà rispondere.


  • Super User

    Potresti spiegare meglio quello che vuoi ottenere?


  • User

    grazie cali1981,
    è come se fosse il primo post.
    a questo indirizzo trovi la mia pagina cerca.asp: slpcislfoggia.it/default.asp?az=search
    che viene correttamente visualizzata. Se inserisci una parola di ricerca x es. "recapito" si apre la pagina risultati.asp in una nuova finestra.
    Ebbene io vorrei che sia aprisse nella pagina di default.
    Spero di essere stato chiaro.


  • User

    nessun aiuto?


  • User

    scusatemi se riprendo la discussione ma non ne vengo a capo, conto sul vostro aiuto.
    Un form può essere incluso in una pagina asp? E' il comando "action" che deve avere il collegamento che include la pagina?
    ad esempio: <form name=config action="?az=search" method="get">
    concettualmente è corretto oppure come mi è stato precedentemente consigliato devo usare javascript?
    Attendo vostre, ciao a tutti.