Originariamente inviato da cavicchiandrea
In effetti ..., devi trovare due tabelle database "marca" e "modello" (oppure una tabella ...
e in effetti, non sappiamo proprio dove archivieresti "la roba", se su un Database su un server, se il tutto deve girare solo su un computer locale, se su questo c'è un virtual-server; o se vogliamo addirittura partire da un file di testo. E poi, se vuoi che la seconda SELECT si popoli in base alla selezione operata sulla prima, o compaia da subito con tutti i "nomi" dei modelli (non ripetuti, ovviamente) e in tal caso, ordinati come. Ecc. ecc. ...
E non sappiamo cosa e quanto "mastichi"; quindi rischierò di essere elementare.
Originariamente inviato da cavicchiandrea
dubito che ci sia qualcosa di pronto in rete.
Avevo buttato su dischetto e chissà dov'è, qualcosa di "pronto"-ma-lasciato-incompleto perché cresciuto a dismisura con funzioni aggiuntive; in quanto fatto a titolo di studio ma non avevo necessità pratica di un catalogo di questo tipo.
Vengono fuori delle applicazioni molto interessanti, comunque.
Puoi fare tutto in puro JavaScript, compilando un Array che diventa un piccolo Database.
Un esempio per cominciare a capirci te lo lascio volentieri, con una sola SELECT che tra l' altro, si aggiorna da sola: compilando l' Array-Database, popoli anche la SELECT.
L' Array car contiene 12 articoli (alcuni vuoti !), puoi aggiungere/togliere righe (articoli): il "trucco" dell' indice nella forma [i++] ti consente questa libertà; altrimenti, dovendo essere:
car[0]=new Array('ALFA ROMEO', 'Giulietta', '2012');
car[1]=new Array('ALFA ROMEO', 'L\\' Auto', '2022');
car[2]=new Array('FIAT', '500', '2011');
car[3]=new Array('FIAT', 'Brava', '1998');
car[4]=new Array('FIAT', 'Bravo', '2000');
ti troveresti a dover aggiornare tutti i successivi [numeretti] se ci devi aggiungere in mezzo un' altra ALFA ROMEO.
Ogni articolo dell' Array car contiene a sua volta, un Array.
Con car[1][1] accedo a L' Auto e nota che gli apici che occorrono nella stringa di testo vanno escapati col backslash \ ALTRIMENTI BLOCCHI TUTTO !
Il mio "prototipo" fa uso del document.write(); ma si può sviluppare anche con l' .innerHTML e quasi lo preferisco.
Appare come unicamente uno SCRIPT ma te salvalo con estensione .html e non .js !!!
codice:
<script type="text/javascript">
var car = new Array();
var i=0;
// MARCA MODELLO ANNO
car[i++]=new Array('ALFA ROMEO', 'Giulietta', '2012');
car[i++]=new Array('ALFA ROMEO', 'L\\' Auto', '2022');
car[i++]=new Array('FIAT', '500', '2011');
car[i++]=new Array('FIAT', 'Brava', '1998');
car[i++]=new Array('FIAT', 'Bravo', '2000');
car[i++]=new Array('FIAT', 'Punto', '12 a.C.');
car[i++]=new Array('INNOCENTI', 'Elba', '');
car[i++]=new Array('', '', '');
car[i++]=new Array('Skoda', 'Fabia 1.2 benzina', '2009');
car[i++]=new Array('Skoda', 'Octavia 1.6', '2010');
car[i++]=new Array('', '', '');
car[i++]=new Array('', '', '');
document.write('' + car.length + ' articoli catalogati
');
var option = '<option>- scegli marca -';
var rilevato = ''
for(i=0; i<car.length; i++){
if(car[i][0]!=rilevato){ /*** se già non lo ha messo in lista, procede a farlo ***/
option = option + '<option>' + car[i][0];
rilevato=car[i][0];
};
};
alert('si va a popolare la SELECT con:\n\n' + option);
document.write('<select id="marca">' + option + '<\/select> | <input value="visualizza" type="button" onclick="risulta();">');
/*** ci prepariamo a costruire la TABLE dei risultati, che verrà popolata al richiamo della function risulta() ***/
var riga = '<thead><tr><th>MARCA<\/th><th>MODELLO<\/th><th>ANNO<\/th><\/tr><\/thead><tbody>';
function risulta(){
var casa = document.getElementById("marca").value;
for(i=0; i<car.length; i++){
if(car[i][0]==casa){
riga = riga + '<tr><td>' + car[i][0] + '<\/td><td>' + car[i][1] + '<\/td><td>' + car[i][2] + '<\/td><\/tr>';
};
};
document.write('<table border="1" align="center">' + riga + '<\/tbody><\/table>');
document.close();
};
</script>
Prova a togliere (così vedi a cosa serve) il document.close(); che conclude la funzione; e osserva che la clessidra ...
Sarebbe poi anche possibile fare un' applicazione per compilare l' Array -senza errori - scrivendo in degli INPUT Text.