Ringrazio chiunque sara' in grado di darmi una mano:
Ho trovato un javascript che permette di gestire un piccolo database e fa una ricerca sullo stesso. Per le mie esigenze pero' fa troppe cose dato che lui fa ricerche su piu' campi di uno stesso record, mentre a me serve soltanto che ricerchi in un solo campo (il primo) poi scriva a video la descrizione di questo codice (il secondo campo)e linki per questo risultato un file dbf.
Invece attualmente lo script fa ricerche combinate e altre cose che non mi occorrono.
Qualcuno puo darmi una mano a semplificarlo?
Grazie mille.
Il file si trova QUI
e lo script e':
codice:
<script language="javascript" src="db.js"></script>
<script language="javascript">
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]) + '' + splitta[1] + '</font>')
}
doc.write('</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 + o < array_risultati.length)
{
doc.write('<input type="button" value="successivi" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s + o) + ', ' + o + ')">')
}
if (s > 0)
{
doc.write('<input type="button" value="precedenti" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s - o) + ', ' + o + ')">')
}
doc.write('</div></form>')
}
</script>
il db.js e' fatto cosi':
codice:
var db = new Array ("campo 1|Descrizione1|url_pdf",
"campo 2|Descrizione2|url_pdf",
"campo 3|Descrizione3|url_pdf");