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
venus dormiens ha aperto un annuncio di ricerca: Origo Haeredis - Harry Potter Gdr ricerca Giocatore
Metin2: Server Boost Yohara – Dettagli e FAQ
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Sea of Conquest: Ci dai una mano ai #PocketGamer Awards 2024?
goldaries ha recensito Games of Thrones Winter is Coming
spike92 ha recensito Il Grande Blu
World of Warship: Aggiornamento 13.11: anteprima
Pirates of the Caribbean → Parti per un'avventura con Jack Sparrow, Will Turner, il Capitano Barbossa e altri spadaccini del franchise cinematografico Pirati dei Caraibi!
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
Pirates of the Caribbean → Parti per un'avventura con Jack Sparrow, Will Turner, il Capitano Barbossa e altri spadaccini del franchise cinematografico Pirati dei Caraibi!
I dati del generatore di rank sono stati aggiornati!
aik ha aperto una nuova discussione: Parere su BrowserGame
eXtremelot: La Bussola dei Cartografi di Lot
Dallas Black Gold: [Trama] JFK Memorial
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
London Vittoriana - Intervista ai gestori di London.. gdr ambientato nella Londra Vittoriana
Gdr su Google Wave? - Clemence analizza la nuova piattaforma di Google. Sarà adatta a giocare di ruolo?
Domino Harry Potter - Land su Harry Potter..quale futuro hanno? Un analisi di Eleonora Scorti..
Dall-E - Cos'è e cosa puoi fare con l'intelligenza artificiale DALL-E per generare immagini?
Giochi Business - Lista completa dei giochi di ruolo online ambientati nel mondo del business
Storia Giochi - Curiosità sulla storia dei giochi di casinò, videogiochi e giochi online