[javascript] memorizzare selezioni di un campo select di un modulo

isidoro80

Utente Attivo
124
0
ciao a tutti, ho scaricato uno script (sul sito html.it) che permette di memorizzare ciò che viene scritto nei campi di testo di un modulo all'interno di cookie in modo che se l'utente torna sulla pagina i campi sono già valorizzati con i valori inseriti precedentemente. A me serve uno script simile che permetta di mantere valorizzate le selezioni di una select (i menu a tendina per intenderci) in modo che quando l'utente torna sulla pagina non deve selezionare nuovamente quello che precedentemente aveva selezionato.
Come posso fare? E' possibile?
Grazie mille a tutti
 

airex

Utente Èlite
2,394
14
CPU
Intel Core2Duo E6750
Scheda Madre
Gigabyte GA-G33M-DS2R
HDD
1x80GB Sata2 + 1x320GB Sata2
RAM
2 x 2048MB DDR2 800MHz
GPU
NVidia 8800GT 1GB
Audio
Intel HDA
Monitor
LCD Samsung 19"
PSU
LC Power Green Power V2.0 - 550 Watt
OS
Linux Slackware64
ti devi mettere con javascript in modo che subito dopo il "disegno" della select il codice analizzi i cookie e selezioni automaticamente la voce corretta del menu a tendina
 

airex

Utente Èlite
2,394
14
CPU
Intel Core2Duo E6750
Scheda Madre
Gigabyte GA-G33M-DS2R
HDD
1x80GB Sata2 + 1x320GB Sata2
RAM
2 x 2048MB DDR2 800MHz
GPU
NVidia 8800GT 1GB
Audio
Intel HDA
Monitor
LCD Samsung 19"
PSU
LC Power Green Power V2.0 - 550 Watt
OS
Linux Slackware64
il codice per la gestione cookie mi pare tu l'abbia già, per il resto dovrai agire sull'oggetto che contiene la tua select, puoi ottenere un riferimento ad esso e memorizzarlo in obj con:
obj = document.nome_form.nome_select;
o con
obj = document.getElementById(valore_id_assegnato_alla_select);

da qui in poi dovrai agire sui vari elementi option presenti all'interno dell'oggetto ottenuto.

Ti consiglio una rapida lettura in rete della struttura dell'oggetto rappresentante i menu a tendina (select) ;)

ps.
non ti do già la soluzione perchè non è utile a livello formativo
 

isidoro80

Utente Attivo
124
0
Ciao grazie per la risposta.
L'idea che mi hai suggerito è ottima ma non so come addattarla al mio form ti spiego.
La pagina che ho realizzato serve per inserire dati in un database.
Dopo il post riappare nuovamente il form per inserire nuovi dati.

Qui di seguito ti riporto il codice php di una delle select del mio modulo..

Codice:
<select name="anno" id="anno">
          <option value="0">seleziona</option>
          <?php
do {  
?>
          <option value="<?php echo $row_Recordset1['id_anno']?>"><?php echo $row_Recordset1['anno']?></option>
          <?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
  $rows = mysql_num_rows($Recordset1);
  if($rows > 0) {
      mysql_data_seek($Recordset1, 0);
	  $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  }
?>
        </select>
praticamente il contenuto della select viene preso da una tabella di un database che contiene due campi id anno e anno, nella select viene visualizzato l'anno "es 2000" mentre il post passa l'id corrispondente all'anno selezionato es 1.
Ora come posso modificare questo codice per far si che dopo il post il valore di default che attualmente è seleziona con il valore precedentemente selezionato?
grazie mille per l'aiuto
 

airex

Utente Èlite
2,394
14
CPU
Intel Core2Duo E6750
Scheda Madre
Gigabyte GA-G33M-DS2R
HDD
1x80GB Sata2 + 1x320GB Sata2
RAM
2 x 2048MB DDR2 800MHz
GPU
NVidia 8800GT 1GB
Audio
Intel HDA
Monitor
LCD Samsung 19"
PSU
LC Power Green Power V2.0 - 550 Watt
OS
Linux Slackware64
la risposta è semplice, quando ricarichi la pagina vai a prelevare da dove hai salvato le informazioni l'id dell'anno e lo memorizzi in qualche variabile (es $sel) e poi usi:
Codice:
do {  
?>
   <option value="<?php echo $row_Recordset1['id_anno']?>" <?php
   if ($sel == $row_Recordset1['id_anno']) echo "selected";
   ?>><?php echo $row_Recordset1['anno']?></option>
   <?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
 

isidoro80

Utente Attivo
124
0
ciao grazie mille per l'aiuto senza di te non ce l'avrei fatta. ho fatto una piccola modifica al codice perchè se la variabile non è valorizzata perchè è la prima volta che si compila il campo mi compariva errore e allora hi aggiunto una if
Codice:
<select name="anno" id="anno">
        <option value="0">seleziona</option>
 
  <?php
 
do {  
?>
          <option value="<?php 	   
		   echo $row_Recordset1['id_anno'];
		   ?>"
		   <?php
	if (!empty($anno2)) {
   if ($anno2 == $row_Recordset1['id_anno']) echo "selected";
   }?> 
		         ><?php 
		   echo $row_Recordset1['anno'];
		   ?></option>
          <?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
  $rows = mysql_num_rows($Recordset1);
  if($rows > 0) {
      mysql_data_seek($Recordset1, 0);
	  $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  }
?>
Però perodnami non ho capito come funziona questa riga
Codice:
if ($anno2 == $row_Recordset1['id_anno']) echo "selected";

praticamente scusami correggimi se sbaglio se la variabile anno2 è uguale a id_anno visualizza (echo) selected?
che significa?
io stavo stavo provando a modificarlo e mi veniva una cosa complicatissima
invece tu con una riga mi hai risolto il problema
 

isidoro80

Utente Attivo
124
0
Airex spiegami che significa questa riga di codice
Codice:
if ($anno2 == $row_Recordset1['id_anno']) echo "selected";
ciao e grazie ancora
 

airex

Utente Èlite
2,394
14
CPU
Intel Core2Duo E6750
Scheda Madre
Gigabyte GA-G33M-DS2R
HDD
1x80GB Sata2 + 1x320GB Sata2
RAM
2 x 2048MB DDR2 800MHz
GPU
NVidia 8800GT 1GB
Audio
Intel HDA
Monitor
LCD Samsung 19"
PSU
LC Power Green Power V2.0 - 550 Watt
OS
Linux Slackware64
il "selected" che mando a video è una delle opzione del tag option al cui interno stiamo "lavorando" con il blocco php, in pratica ti forza la seleziona di quel valore nel menu a tendina
 

isidoro80

Utente Attivo
124
0
ho capito praticamente da solo non ci sarei mai arrivato grazie. io avevo intrapreso un'altra strada ma non penso sarei arrivato lontano
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!