16 messaggi dal 28 marzo 2004
Problema: ho una select popolata con alcuni valori presi da un DB. Vorrei che selezionando un valore qualsiasi, i campi che si trovano in quella tabella vengano aggiornati su due text. Mi spiego meglio: Ho una select e 2 text, se ad esempio nella select ho tutti gli istituti scolastici, vorrei che nelle 2 text fossero visualizzate la citta e l'indirizzo, ed ogni volta che cambio istituto le 2 text si aggiornano automaticamente! Grazie a chi volesse darmi una mano

Francesco
11 messaggi dal 05 settembre 2003
devi utilizzare un javascript che si attivi sulla select all'evento onChange.
In questo evento devi generare uno switch con un caso per ogni istituto.
Nel codice interno di ogni caso deli mettere il codice che imposta l'indirizzo ed il resto dei dati contenuti nei text.

allo switch come espressione devi passare l'id dell'istituto selezionato attualmente nel select utilizzando la proprietà selectedIndex del select stesso.
16 messaggi dal 28 marzo 2004
Gli istituti però sono circa 500,nn siste un metodo più semplice? selezionando gli istituti dalla select, devono essere visualizzati contemporaneamente su le 2 text l'indirizzo e la sede!Vi prego Aiutatemi

Francesco
11.883 messaggi dal 09 febbraio 2002
Contributi
mmh avendo 500 istituti risulterebbe pesante caricare tutti i dati per ognuno.
Devi PER FORZA eseguire uno script lato server ad ogni voce che viene selezionata nella select. Questo puoi farlo in tre modi:

1) ricaricare la pagina (ma credo sia quello che non vorresti fare)
2) ricaricare un'altra pagina in un server nascosto. Passa a questa pagina l'id della scuola selezionata. Essa eseguira una query sul database prelevando i valori per i due campi e li restituirà in output in questo formato:
<script language="Javascript">
parent.frameprincipale.document.nomeform.nomeindirizzo.value = "indirizzo scuola"
parent.frameprincipale.document.nomeform.nomecitta.value = "citta scuola"
</script>

cioè usi un javascript per impostare il valore dei due campi nonappena il caricamento di questa pagina nascosta ha avuto termine.

3) usi il remoting script del javascript. E' una funzionalità simile alla precedente. Si tratta sempre di interpellare una pagina dinamica ma tutto ciò non viene fatto in un frame nascosto ma aggiungendo alla pagina una riga simile a questa:
<script language="Javascript" src="pagina.asp?idscuola=5"></script>

lo script per farlo è:

function loadScript(idscuola){
var head = document.getElementsByTagName('head').item(0);
var old = document.getElementById('lastLoadedCmds');
if (old) head.removeChild(old);
var scriptUrl = "pagina.asp?idscuola=" + idscuola
script = document.createElement('script');
script.src = scriptUrl;
script.type = 'text/javascript';
script.defer = true;
script.id = 'lastLoadedCmds';
void(head.appendChild(script));
}

pagina.asp deve produre come unico output una cosa come questa, simile a quella del punto 2:

document.nomeform.nomeindirizzo.value = "indirizzo scuola"
document.nomeform.nomecitta.value = "citta scuola"

mi raccomando, non ci devi mettere i tag script qui dentro.
ciao

Enjoy learning and just keep making
16 messaggi dal 28 marzo 2004
Scusa ma io ho provato a farlo ma nn mi riesce! NN è che potresti farmi un esempio un pò più pratico?scusa la mia ignoranza, ti ringrazio!

Francesco

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.