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
World of Warship: Battaglie Asimmetriche nel 14.5
nereya ha aperto una nuova discussione: Nuova Frontiera
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
New Wizarding World: Un nuovo Medimago
Sea of Conquest: Incontra Demona Rood! 🔥
anacronista ha recensito Storie di Agarthi
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Nyx Insight - Project S.E.T.: Setting Refresh Time ✨
mhorras1988 ha recensito Fengard
prosperus ha recensito Exclusive Villa GdR
visanders ha aperto una nuova discussione: Aiuto ricerca Gioco
The Coven → Negli scorci di luce delle paludi della Louisiana fioriscono nuove ombre. Estend e la Congrega ti aspettano per vivere emozionanti avventure!
kooei ha recensito Il Paiolo Magico
emiko ha recensito La Tana del Ladro
Entropia Universe: 💥 Evento Summer Mayhem 2025
Dark Genesis → Ascendi al cielo in Dark Genesis! Raduna potenti semidei, costruisci il tuo impero volante e scontrati in battaglie divine!
Attacchi e Difese - Lista degli attacchi e difese possibili in questo breve manuale da tenere sempre a portata di mano!
Terre dei Celti - Recensione del gioco storico-fantasy Terre dei Celti
Il Power Player - L'espressione Power Player é entrata nell'immaginario collettivo come sinonimo di pg che vogliono vincere
Guida RpG - Una guida per iniziare a giocare ai giochi di ruolo (RPG)
Classifica 2024 - La classifica dei giochi più visitati sul portale nell'anno 2024!
Le Cronache di Arathos - Intervista ai gestori del GdR play by chat fantasy Le Cronache di Arathos
Sailor Land - Intervista alla gestione di Sailor Land, il play by chat ambientato nell'universo di Sailor Moon!
DreamOfYou - Intervista ai gestori del gioco di ruolo fantasy via chat DreamOfYou