problema con una select... postato il 20/02/2009 21:29:02 nel forum programmazione, gdrcd, open source, hosting
buongiorno a tutti,
sono alle prime armi e mi scontro con i primi problemini di sintassi....forse qualcuno può aiutarmi
all'interno della mia pagina main.php vorrei ottenere il seguente risultato:
presupponendo che ho in mysql una tabella con due campi (nome, categoria) e 10 record , di cui 5 appartenenti alla categoria A e 5 alla categoria B.
vorrei visualizzare un campo radio che mi permetta di scegliere tra due opzioni (A,B).
subito sotto un campo select nascosto di default, che raccolga la scelta del "radio" precedente e che diventi visibile mostrando tra le sue option, solo quelle relative al valore del radio.
quindi scegliendo l'opzione A del radio, vorrei che mi comparisse la select con le sole 5 opzioni della categoria A.
ho provato e riprovato, ma trovo difficoltà nell'utilizzare correttamente javascript, integrandolo con PHP.
ecco come l'avevo pensata:
<table>
<form name="prova" action="main.php" method="POST">
<tr>
<td>
<th>Scelta Categoria</th>
<input type="radio" id="cat" value="A" onclick="document.getElementById('opzioni').style.display = 'inline';">A
<input type="radio" id="cat" value="B" onclick="document.getElementById('opzioni').style.display = 'inline';">B
</td>
</tr>
<br><br>
<script type="text/javascript">
alert(document.getElementById('cat').checked);
alert(document.getElementById('cat').value);
// if (document.getElementById('cat').checked){
// <? $conf ?> = document.getElementById('cat').value;
// }
</script>
<!-- come vedete avevo pensato di verificare se fosse checked, ed eventualmente assegnarne il valore a una variabile da utilizzare poi nella query al db. il problema è che cerco di assegnare un valore javascript ad una variabile php....credo. inoltre il secondo alert non funziona correttmente, e qualsiasi valore scelgo nel radio(A,B) mi riporta sempre il valore A.
poi passo alla select, ancora incompleta....-->
<tr>
<td><th>Lista opzioni</th>
<select style="display:none" id="opzioni" name="opzioni">
<?
$MySql = "SELECT * FROM nome_tab";
$Result = mysql_query($MySql);
while ($rs = mysql_fetch_array($Result)) {
?>
<option value="<?=$rs['nome']?>"><?=$rs['nome']?></option>
<?
}
?>
</select>
</th>
</td>
</tr>
<br><br>
<tr>
<td><th><input type="submit" value="Invia"></th>
</td>
</tr>
</form>
</table>
Da quello che ho in mente, una volta riuscito a recuperare in una variabile php, il valore del radio, riuscirei a impostare
correttamente anche la select(impegnandomi)....però ho un altro dubbio.
quando io clicco sul mio radio, la pagina main.php è già stata caricata....quindi anche la select è già stata creata sebbene sia nascosta....dovrei impostare sull'onclick del radio anche un comando per ricaricare la pagina ? perchè io ci ho provato utilizzando document.prova.action = "main.php"; e anche document.prova.submit(); ma non mi mantiene più la scelta effettuata sul radio.....giustamente mi carica tutto da capo.ufff
spero di essere stato chiaro anche se un pò incasinato...
grazie a chi avrà la cortesia di aiutarmi
Pagine → 1
20/02/2009 21:50:39
Estraendo da db entrambe i "gruppi", ed inserendoli in due array js, poi risulterebbe molto più facile fare quello che vuoi fare tu, visualizzando soltanto un array, scelto in base all'opzione dei radio button.
20/02/2009 23:19:21 e modificato da zorroboban il 20/02/2009 23:22:17
caspita...hai ragione....mi sono scervellato tuttoil giorno pensa...
però c'è sempre un problema...
una volta che scelgo una delle due e cambio scelta sul radio, non mi aggiorna la select.
ho provato ad agire sull'onchange, ma forse sbaglio ancora qualcosa:
onclick="document.getElementById('select_A').style.display = 'inline'" onchange="document.getElementById('select_B').style.display = 'none'"
e invertendo i metodi per il secondo radio...
21/02/2009 01:32:21
ok ok
ce l'ho fatta anche se a tarda ora.....ma adesso ce new york-toronto e mi fermo...
avrei ancora un dubbio.....
è possibile sull'onclick di un submit andare a modificare un campo in una tabella del db prima di passare alla pagina successiva indicata nell'action del form?
se si come? io ho provato creando un funzione javascript....ma mi chiedevo come interagisce php con javascript? all'interno di una function nel tag script, posso inserire del codice php, come ad esempio una query??
grazie a tutti.....soprattutto per la pazienza!
21/02/2009 01:43:58
Se vuoi farlo con javascript l'unica maniera è passare i dati ad una pagina php con una richiesta asincrona.
Ma da come la poni sembra superflua la cosa, visto che puoi inserire quel record nella tabella anche nella pagina in cui agisce l'action del form inserendo quella procedura come prima cosa rispetto alle altre ;)
21/02/2009 18:14:39
mmm....premetto che ho scaricato la guida e che ajax inizierò a studiarmelo in questi giorni, e ho capito bene o male cosa può fare....sembra la soluzione al mio problema. ma prima di utilizzare ajax? in che modo si poteva fare l'operazione di query?
ho provato, come mi hai suggerito, ad assegnare ad una variabile js il valore di una $php. e funge .....però io ho bisogno di fare il contrario, o forse sono io che sto cercando una soluzione assurda a un problema di facile risolutezza....mi spiego meglio:
all'inizio della mia main.php ho impostato un if che valuta se un campo db è valorizzato. se non lo fosse la pagina mostra una select e l'utente deve fare la propria scelta. subito dopo premendo invio, io dovrei andare a valorizzare quel campo db, in base alla scelta dell'utente, ricaricare la stessa pagina(questo tramite l'action del form) e sfruttare nuovamente l'if iniziale che questa volta vedrà valorizzato il campo db e mi mostrerà il vero contenuto della main.php
La mia testolina contorta, che le cose semplici non le vede mai(leggasi l'inizio del post), ha pensato che la scelta dell'utente la posso recuperare
tramite javascript, document.getelementbyid().value
sull'onclick faccio dunque partire una funzione js dove cerco di assegnare a una variabile php il value della select...il contrario di quello che mi avevi spiegato...ma non la accetta....ad es:
"<?$ciao?>" = document.getelementbyid().value
l'errore a video è che è impossibile assegnare a una string il valore...
io cerco di assegnare il value ad una variabile php per inserirlo in una query......ma non sò se la strada è quella giusta.
se inserissi la query nella form prima dell'invia creerei un casino. ogni volta che l'utente cambia scelta sulla select dovrei aggiornare il campo db? mmmm.....il campo si dovrebbe agiornare solo quando l'utente clicca invia.....probabilmente con ajax risolverei.....ma ora mi interessa più capire, che andare avanti con il mio lavoro
grazie cmq !!! se hai o avete altre dritte!! anche se io credo che ci sia magari un metodo piu semplice per ottenere lo stesso risultato e sono io che mi complico le cose
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Planethos GdR: Una nuova profezia
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Metin2: Informazioni sul server migliorate
Age of Crystals: Rallentamenti estivi
dbzgdr ha risposto alla discussione: Dragon Ball Z Gdr
Titan Revenge: Calendario eventi fino a fine mese online!
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Enlisted: Modifiche al sistema di aggiornamento
pyro72 ha aperto un annuncio di ricerca: World Without Heroes ricerca Giocatore
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita nell'arena! Ogni giocatore sarà accompagnato da armi realistiche e magie!
World Without Heroes: News GDR: Pubblicazione e Nuovo Inizio
I dati del generatore di rank sono stati aggiornati!
Il gestore di Nexi Generation ha risposto alla recensione di deanna
Piume Nere → Inquisizione, Intrigo e Soprannaturale: quali torbidi e oscuri segreti si celano tra le nebbie di Laddington? Iscriviti per scoprirlo!
Asce e Mazze - Breve manuale sull'utilizzo di asce e mazze nei giochi di ruolo da leggere se utilizzate queste armi distruttive!
Seguici su Twitter! - Segui GDR-online.com su Twitter. Cinguettii continui con tutte le news dai GdR!
Gioco del Pollo - Fenomeno del Gioco del Pollo: un'analisi della sua crescente popolarità
Il GDR e i Dadi - Articolo che sviscera il rapporto fra i GDR e i famosissimi "dadi"
Videogame - Tesi di laurea in scienze del web con un interessante analisi del settore dei videogiochi
Recensione LdS - Recensione del gdr fantasy epico Lande di Shannara.. immergiti in un mondo magico!