Valorizzare i radio-buttom e le caselle di riepilogo a discesa (option) con quer

Ciao a tutti.

Ho un problema.

Sto creando uno strumento di censimento con query di insert.

Una volta inseriti i dati da una maschera di input che prevede sia radio-buttom sia caselle di riepilogo a discesa, ho un altro file che dovrebbe effettuare una query e visualizzare i dati in una maschera che come layout si presenta identica alla pagina di inserimento.

Se in fase di inserimento ho cliccato sul radio-buttom X, dovrei nella pagina di visualizzazione (con una query che ne estrae i dati) visualizzare il radio-buttom corrispondente al valore inserito prima.

Non so se è chiaro ....  ??? , dovrei veder già selezionato il radio-buttom giusto in base ai valori risultanti dalla query nella maschera di visualizzazione.

La stessa cosa dovrebbe essere per le caselle di riepilogo a discesa ...

Qualcuno sa indirizzarmi? E' possibile farlo con php o è necessario java? Che tecnologia si deve utilizzare?

Un grazie a tutti.

Ciao

Stone  :bye:

inviato 8 anni fa
stone
X 0 X

Solo qualche precisazione: Javascript non è Java (per la milionesima volta), si chiamano button, non buttom ;D.

Prova a spiegarti un pò meglio.

Hai qualche esempio (anche non tuo) per farci vedere cosa vuoi effettivamente ottenere?

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Solo qualche precisazione: Javascript non è Java (per la milionesima volta), si chiamano button, non buttom ;D.

Prova a spiegarti un pò meglio.

Hai qualche esempio (anche non tuo) per farci vedere cosa vuoi effettivamente ottenere?

:bye:

Ciao. Pardon!

Volevo realizzare una pagina con dei radio button e delle caselle di riepilogo. Una volta effettuate le scelte si clicca su inserisci e avviene l'inserimento nel db. Fin qui nessun problema.

Al momento di richiamare quello specifico record inserito, lo vorrei richiamare con una pagina uguale a quella dell'inserimento con i radio button e le caselle di riepilogo già selezionati come da inserimento effettuato.

Ad esempio su link seguente

http://www.stone-bike.it/esempio.htm

ho selezionato uno dei dei due radio-button e un'opzione delle tre disponibili sulla casella di riepilogo, clicco sul tasto inserisci e i dati selezionati vengono inseriti nel db.

Ad esempio volgio richiamare quello specifico record e mi si apre una pagina (dove ci sarà una query che estrae i dati del record inserito) in cui invece di visualizzare i dati semplicemente con le variabili, me li visualizza nello stesso formato dell'inserimento fatto, quindi mi dovrebbe visualizzare i radio-button già spuntati e la casella di riepilogo già selezionata

http://www.stone-bike.it/esempio2.htm

Esiste un modo?

Ciao

Stone :bye:

risposto 8 anni fa
stone
X 0 X

Mhh, praticamente quando estrai i dati vorresti che il form abbia selezionati automaticamente i valori che ci sono nel database, giusto?

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Ad esempio volgio richiamare quello specifico record e mi si apre una pagina (dove ci sarà una query che estrae i dati del record inserito) in cui invece di visualizzare i dati semplicemente con le variabili, me li visualizza nello stesso formato dell'inserimento fatto, quindi mi dovrebbe visualizzare i radio-button già spuntati e la casella di riepilogo già selezionata

basta che inserisci i dati degli stati dei checkbox/radio nel db con bool ad esempio...

poi quando vai in visualizzazione del record ti basta controllare se é 1 metti

<input type="checkbox" name="test"  checked="checked">

altrimenti togli il checked..

semplice no?

edit: ho aggiunto checked="checked" perchè attributi senza valore non sono validi

risposto 8 anni fa
neryo
modificato 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Mhh, praticamente quando estrai i dati vorresti che il form abbia selezionati automaticamente i valori che ci sono nel database, giusto?

:bye:

Proprio così ... non so se si può fare.

Ho anche cercato in giro ma non ho trovato proprio nulla  :(

Tu hai qualche idea?

Stone  :bye:

p.s. per neryo: non è una checkbox ma un radio e la valorizzazzione deve essere dinamica in base alla query  :bye:

risposto 8 anni fa
stone
X 0 X
p.s. per neryo: non è una checkbox ma un radio e la valorizzazzione deve essere dinamica in base alla query  :bye:

é la stessa cosa.

Se hai ad esempio 3 proprietá del radio:

<form name="form">

<input type="radio" name="group1" value="1">

<input type="radio" name="group1" value="2">

<input type="radio" name="group1" value="2">

</form>

quando estrai i dati dal db con una select andrai a controllare il valore della variabile group1 memorizzata nel db... farai

<?

if($group1 == 1 )}

?>

<form name="form">

<input type="radio" name="group1" value="1" checked="checked">

<input type="radio" name="group1" value="2">

<input type="radio" name="group1" value="3">

</form>

<?

}else if ($group1 == 2 ){

?>

<form name="form">

<input type="radio" name="group1" value="1" >

<input type="radio" name="group1" value="2" checked="checked">

<input type="radio" name="group1" value="3">

</form>

ecc

risposto 8 anni fa
neryo
modificato 8 anni fa
X 0 X

Non ci siamo neryo, la tua soluzione porta ad un'inutile ripetizione di html che porta ad ovvi problemi di manutenzione e di complessità anche nel caso si aggiungano altre opzioni (considera che si dovrebbero gestire 1n casi, dove n è il numero di determinazioni della radio box, quindi un caso per ogni possibile determinazione).

Inoltre non credo che ci siano solo delle select nel form, consiglio quindi di portare i tag form all'esterno [mi riferisco dell'esempio da te effetuato].

Io consiglio una via dinamica, di questo tipo:

Questi sono i dati:

<?php
/**
 * Questo array contiene gli id e il nome dell'animale,
 * per semplicita' l'ho scritto a mano, ma nulla vieta che
 * i dati siano estratti da una qualsiasi altra fonte tipo
 * databae o file.
 */    
$valoriRadio = Array(
   Array('id' => 1, 'nome' => 'cane'),
   Array('id' => 5, 'nome' => 'gatto'),
   Array('id' => 6, 'nome' => 'topo'),
   Array('id' => 9, 'nome' => 'squalo')
);
/**
 * conto il numero di elementi contenuti nell'array dei valori 
 */ 
$determinazioni = sizeof($valoriRadio);
/**
 * ecco l'ID della radio selezionata, in questo caso ho stabilito
 * io che sia evidenziata la radio del gatto
 */  
$selezionata = 5;
?>

Questo è lo script che lavora nel template, praticamente fa questo:

  • Ripete il codice per la creazione di una radio tante volte quante determinazioni essa può assumere.
  • Se l'id dell'elemento in fase di output è lo stesso id del valore selezionato allora valorizza la variabile checked con checked="checked" altrimenti la svuota.
  • Esegue l'output del codice html con i valori necessari.
<form action="" method="post">
<?php for ($i = 0 ; $i < $determinazioni ; $i++) : ?>
   <?php $checked = ($selezionata == $valoriRadio[$i]['id']) ? 'checked="checked"' : '' ?>
   <label for="radio_<?php echo $valoriRadio[$i]['nome'] ?>">
      <input
         name="animale"
         type="radio"
         value="<?php echo $valoriRadio[$i]['id'] ?>"
         id="radio_<?php echo $valoriRadio[$i]['nome'] ?>" <?php echo $checked ?> />
      <?php echo $valoriRadio[$i]['nome'] ?>
   </label>
<?php endfor; ?>
[eventuali altri campi]
</form>

Questo codice dovrebbe adattarsi benissimo al tuo problema, anche se ti consiglio di fare qualche prova con esso in modo da capire effettivamente cosa stai andando a fare, ed imparare dall'esempio piuttosto che fare semplice copia/incolla.

Nota : Si sarebbe potuto utilizzare un costrutto per lo scorrimento di una lista come il foreach, in questo modo si sarebbe evitato di contare gli elementi del vettore $valoriRadio, ma un for è decisamente più prestante in termini di velocità d'esecuzione (oddio, nell'ordine dei ns ;D).

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X
Non ci siamo neryo, la tua soluzione porta ad un'inutile ripetizione di html che porta ad ovvi problemi di manutenzione e di complessità anche nel caso si aggiungano altre opzioni (considera che si dovrebbero gestire 1n casi, dove n è il numero di determinazioni della radio box, quindi un caso per ogni possibile determinazione).

guarda.. il mio era solo un esempio, che ovviamente ho scritto in 10 sec per fargli capire..ovvio che non gli preparo la pappa pronta altrimenti che senso ha?

chiaramente concordo che si puo fare meglio ma questo lo deve fare lui non io.

Ciao

risposto 8 anni fa
neryo
X 0 X

Grazie ragazzi.

Proverò immediatamente e vi faccio sapere ...

Ciao

Stone  :bye:

risposto 8 anni fa
stone
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda