aiuto per database javascript

horusbird

Nuovo Utente
6 Ott 2005
5
0
0
Salve, ho trovato in rete un javascript che gestisce un semplice database, adesso vorrei fare una modifica in quanto vorrei che il form non accettasse valori composti da meno di 13cifre. Mi date una mano?
Adesso se non inserisco nessun valore mi rstituisce l'intero database cosa che non vorrei.
Grazie Mille


<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.toUpperCase()
var stringaUtile = stringaConfronto.substring(0,stringaConfronto.indexOf("|"))

for (j = 0; j < stringa_formata.length; j++)
{
var stringaUtente = stringa_formata[j].toUpperCase()
if (stringaUtile.indexOf(stringaUtente) != -1)
{
matrix[matrix.length] = db
break
}
}
}
verifica(matrix)
}

function cerca_and (stringa_formata) {
var matrix = new Array()
for (i = 03; i < db.length; i++)
{
var coincidenza = true
var stringaConfronto = db.toUpperCase()
var stringaUtile = stringaConfronto.substring(0,stringaConfronto.indexOf("|"))

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
}
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"><base TARGET="_new"></head><body bgcolor="white">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade><tr><td><font face="Verdana, Arial, sans" size="2"><b>Chiave di ricerca: ' + '<i>' + parent.frames[0].document.forms[0]._query.value + '</i>' + '<br>Risultati:' + '<i>' + ' da ' + (s + 1) + ' a ' + limite + ' di ' + array_risultati.length + '</i></font>' + '</b><hr size="1" noshade>')
for (i = s; i < limite; i++)
{
var splitta = array_risultati.split("|")
doc.write('<tr><td><dl><font face="Verdana, Arial, sans" size="2">' + splitta[0].link(splitta[2]) + '&nbsp;&nbsp;<i>' + splitta[1] + '</i></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>

</head>
<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="500" border="0">
<tr>
<td width="442"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CERCA
NEL NOSTRO DATABASE</font><font face="Verdana, Arial, Helvetica, sans-serif" size="-2">&nbsp;</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="text" name="_query" ddv-minlength=”5” size="30">
</font></td>
<td width="50">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="help.html" target="bot">HELP</a></font></div>
</td>
</tr>
</table>

</div>
</form>
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
Prova così: ;)

Nella function filtro aggiungi la parte in blu:

...
function filtro (query) {
var verifica_lunghezza;
verifica_lunghezza = query.value;

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
if (verifica_lunghezza.length<13) {window.alert('Devi inserire almeno 13 caratteri');}
else
{
formatta_stringa (query);}
}
...
...


Se hai problemi fammi sapere! :fonzie:

SaLuT!
:byebye:
 

horusbird

Nuovo Utente
6 Ott 2005
5
0
0
purtroppo non funziona, non da nessun errore, semplicemente se metto qualsiasi valore resta li senza alert e senza andare avanti...
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
Davvero strano... :confused:

Prova a guardare nella status bar dopo aver cliccato, se c'è un errore di scripting ti apparirà a sinistra un triangolo giallo col punto esclamativo.
Cliccalo, ti si aprirà la finestra di errore con la descrizione di quest'ultimo. ;)

Ascolta, ora devo andare a pranzo, se nessun'altro nel frattempo ti aiuta appena ho tempo torno da te! :fonzie:

:byebye:
 

horusbird

Nuovo Utente
6 Ott 2005
5
0
0
In realta' appare un errore che poi pero' scompare immediatamente, credo dipenda dal fatto che i risultati del form visualizzano i dati in un frame diverso da quello in cui e' il form.
Ho provato a lanciare solo il frame in cui e' presente il form e il javascript e l'errore visualizzato e':

riga 13

'parent.frames.1.document' e' nullo o non e' un oggetto

nella riga 13 appunto c'e' la definizione della variabile:

var doc = parent.frames[1].document

ma non capisco perche' senza la tua modifica funziona bene e con la modifica no... :(
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
Ti da quell'errore perchè è strutturato per lavorare coi frames, non puoi aprirlo da solo! ;)

Ascolta, fai così, postami il link da cui hai scaricato lo script, così vado a darci un'occhiata per intero e vediamo di metterlo a posto come vogliamo noi! :fonzie:
 
Ultima modifica:

horusbird

Nuovo Utente
6 Ott 2005
5
0
0
Grazie sei gentilissimo, il file e' a questo indirizzo http://www.javascript.it/scripts.php?STATO=1&cate=Database
ed e' quello che si chiama motore di ricerca client-side

Io in parte l'ho gia modificato poiche' mi serve che faccia la ricerca solo nel primo campo del database (e questo l'ho sistemato) ma soprattutto mi serve che per fare la ricerca io debba inserire nel form il numero esatto di caratteri di cui e' composto il campo altrimenti adesso se non inserisco nulla viene fuori l'elenco di tutto il database e se metto parte del nome trova tutti quelli che hanno quella parte di nome. Tutte cose carine ma che a me creano problemi.
Ho chiesto di fare il controllo sul numero di cifre del campo proprio per evitare tutte quelle ricerche strane che non occorrono.
Spero di essere stato chiaro.. :)
Grazie
 

PoLe

MRW Moderator
6 Giu 2005
2.198
3
0
40
.: Venezia :.
www.bzconsulting.it
Ecco fatto!

Horus, eccoti la soluzione: :cool:

Cancella le righe che ti ho dato prima e aggiungi queste in blu, sempre alla function filtro():

function filtro (query) {
if (query.length<13){window.alert("Ci sono meno di 13 caratteri")}
else
{

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)
}
}

:byebye:
 

horusbird

Nuovo Utente
6 Ott 2005
5
0
0
Sei stato gentilissimo. Funziona perfettamente!:mavieni:
Grazie mille dell'aiuto.
:byebye:
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Tabella database [era: Aiuto per php] PHP 34
F Cerco aiuto per creare database per preventivazione con filemaker Offerte e Richieste di Lavoro e/o Collaborazione 2
B Aiuto per il database di una palestra Database 2
E Aiuto per query PHP 8
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
A Aiuto per pagina php PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
L Aiuto per programma web php/mySQL PHP 2
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
wildcity9 aiuto per sbloccare account instagram bannati Social Media Marketing 0
A Aiuto per configurare il banner di Iubenda su un sito in html HTML e CSS 0
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
Z [HTML] aiuto per visualizzazione su tablet Offerte e Richieste di Lavoro e/o Collaborazione 6
W [PHP] Un aiuto per il mio primo "Multithread" PHP 0
G Vuoi fare successo? Abbiamo bisogno di aiuto per un app! Offerte e Richieste di Lavoro e/o Collaborazione 1
K [javascript] Aiuto per programma subnetting Javascript 0
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
L [PHP] aiuto per installazione mrbs PHP 0
1 Aiuto per nuovo sito SEO e Posizionamento 4
K Server per sito di annunci: aiuto nella scelta Hosting 4
P [Javascript] Aiuto per recupero variabili da script Javascript 10
P [PHP] Aiuto per gestione file CSV PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
A aiuto per un codice... PHP 1
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
StelladelSud Cerco aiuto per una demo Offerte e Richieste di Lavoro e/o Collaborazione 3
G Piccolo aiuto per php mail PHP 2
G aiuto per semplice menu onclick HTML e CSS 6
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
A AIUTO per impostazione doppia cifra in tabella HTML e CSS 6
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 3
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 0
A Aiuto per Flash player Flash 0
J Aiuto per localstorage con jquery/js/json Javascript 4
M Cerco aiuto per una modifica di un codice Javascript 2
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
G Aiuto! Studente cerca aiuto per un codice PHP PHP 1
S Aiuto per 2 codifiche java Java 4
G Aiuto per creare chat stile Facebook Javascript 7
Sevenjeak Aiuto e consigli su adattamento sito per dispositivi mobile HTML e CSS 2
S aiuto per script PHP/OOP PHP 2
J Aiuto per un sitema di upload per un progetto PHP 0
K Aiuto per sito Discussioni Varie 0
D Richiesta aiuto siti per indirizzamento forum HTML e CSS 1

Discussioni simili