- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- motore di ricerca
-
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()%>
-
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.
-
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 1elimino 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?
-
non c'è proprio nessuno che ha voglia di aiutarmi?
-
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
-
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
-
@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"
-
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.
-
Non puoi includere in result il resto del sito?
-
ho risolto creando un evento onclick sull'input, grazie lo stesso per aver risposto.
-
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!
-
non so quante prove ho fatto ma non ne vengo a capo.
Qualcuno può consigliarmi un'alternativa?
Grazie anticipatamente a chi vorrà rispondere.
-
Potresti spiegare meglio quello che vuoi ottenere?
-
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.
-
nessun aiuto?
-
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.