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
I dati del generatore di rank sono stati aggiornati!
Ex Gratia GDR: Nuova Entità: Sun Wukong!
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Nyx Insight - Project S.E.T.: Comunicazione del Rettorato - Gli Sport arrivano
black sails chronicles si è accreditato come gestore di Black Sails Chronicles
Nuovo Play by Chat Fantasy → Black Sails Chronicles
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Entropia Universe: Crafting Mania!
Ex Gratia GDR: Traumi e dove trovarne...
pyro72 ha recensito Crash Bandicoot Zone
blackmirror ha recensito Apocalypse Requiem: Detroit
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Dissendium Draconis: Modifiche e Implementazioni: Pozioni
Le Cronache di Raja Dunia: Il Vuoto ed i suoi Principi Demoniaci
masters league si è accreditato come gestore di Masters League
Ex Gratia GDR: Nuova Entità: Ichirei!
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
Incassi dei Giochi! - I giochi online che incassano di più ogni minuto in quest stramba classifica! ;)
Il Fattore C - Per fattore C s’intende, ovviamente, l’esclamazione «Che fortuna!» (e possibili varianti sul tema), pronunciata spesso in ambito ludico.
YouRole - Intervista a Leonardo Sampieri ideatore di YouRole... a cura dei nostri amici di Anonima Gidierre
Sailor Land - Intervista alla gestione di Sailor Land, il play by chat ambientato nell'universo di Sailor Moon!
Damper - Intervista al gestore del play by chat fantascientifico Damper
Leggendra - Intervista al gestore di Leggendra.. il gioco di ruolo play by chat fantasy rinascimentale!
Due Città - Recensione del gioco Due Città...da cui poi si son sviluppati tutti i giochi GDR-CD
Living History - In Italia il primo evento tra Living History e Gioco di Ruolo Storico dal Vivo!