![]() |
|
Un motore di ricerca interno in Asp
Introduzione
<%@LANGUAGE = JScript%>
<html>
<head>
<title>Cerca nel sito</title>
</head>
<body>
<h3>Cerca nel sito</h3>
<form method="POST" action="ricerca.asp?cerca=OK">
<input type="text" name="stringa">
<input type="submit" value="Cerca">
</form>
<%
var cerca = new String(Request.QueryString("cerca"));
var testo = new String(Request.Form("stringa"));
var apice = testo.replace(/'/g,"''");
var stringa = apice.split(" ");
if (cerca == "OK")
{
if (testo == "" || testo == "undefined")
{
Response.Write("<p>Inserire almeno una parola per effettuare una rcerca</p>");
}
else
{
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb"));
var sql = "SELECT * FROM documenti WHERE";
for (var i=0; i<stringa.length; i++)
{
if (i > 0)
{
sql += " AND";
}
sql += " descrizione LIKE '%" + stringa[i] + "%'";
}
var Mostra = Cn.Execute(sql);
if (Mostra.EOF)
{
Response.Write("<p>Nessun risultato</p>");
}
else
{
while (!Mostra.EOF)
{
with (Response)
{
Write("<p>");
Write("<a href='" + Mostra("url") + "'>" +Mostra("titolo") + "</a><br>");
Write(Mostra("descrizione"));
Write("</p>");
Mostra.MoveNext();
}
}
}
Cn.Close();
}
}
%>
</body>
</html>
Per quanto lungo ed articolato, lo script appena proposto è davvero semplice e di facile intuizione: passiamo dunque in rassegna le fasi fondamentali.Avendo utilizzato un'unica pagina per il modulo di ricerca e per il relativo script, dobbiamo fare in modo che quest'ultimo non parta automaticamente al caricamento della pagina: impostiamo quindi nella variabile di tipo QueryString cerca lo script; se il valore di questa variabile sarà OK allora faremo partire la ricerca: <form method="POST" action="ricerca.asp?cerca=OK">Fondamentale la fase di recupero dei dati:
var testo = new String(Request.Form("stringa"));
var apice = testo.replace(/'/g,"''");
var stringa = apice.split(" ");
La necessità è quella di evitare che un apice inserito nella stringa di ricerca generi un errore Sql; in secondo luogo dividiamo col metodo split() la nuova stringa appena generata, in modo da creare un Array di stringa, i cui item sono divisi per il carattere spazio (" ").By-passiamo i controlli ed entriamo direttamente nell'else, e vediamo com'è composta la nostra stringa Sql. Per prima cosa dichiaro la variabile sql var sql = "SELECT * FROM documenti WHERE";e la lascio volutamente incompleta, dato che devo prevedere che l'utente potrà inserire un numero di parole per la ricerca a me sconosciuto; eseguo quindi un ciclo for
for (var i=0; i<stringa.length; i++)
{
if (i > 0)
{
sql += " AND";
}
sql += " descrizione LIKE '%" + stringa[i] + "%'";
}
sulla lunghezza della stringa ed aggiungo dinamicamente elementi Sql in funzione della ricerca dell'utente. Per avere un'idea della stringa Sql che sarà generata, fate un Response.Write
Response.Write(sql); |
IN EVIDENZA
Una slidegallery con jQuery
Pagamenti online con PayPal e PHP
Breve guida a jQuery
Effetto ombra su testo con Photoshop
Guadagna col tuo sito grazie a TradeD...
Guida XHTML
Riscrivere le URL con Asp
Riavviare IIS
HTTP 500 internal server error
Generare password casuali in Javascri...
Errore 80004005: Cannot update. Datab...
Introduzione ad Ajax ed Asp con Jscri...
Referenze dei Tag Html
Stringhe di connessione via ODBC e Ol...
Referenze dei fogli di stile Css
Le espressioni regolari in Javascript
|
||||
© 2001/2010 lukeonweb.net - A cura di Luca Ruggiero, Partita IVA 05564851219 -
Privacy |
Pubblicità |
Contatti
| |||||