|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 2776
|
(asp) recupero dati dalle checkbox e select
Salve a tutti
Vorrei recuperare dei dati dal db nelle checkbox facendo in modo che risultanino gia checcate, per poi poterle eventualmente cambiare. Se non le cambio, la pagina deve scrivere nuovamente il valore gia selezionato in precendenza. So come fare il passaggio nelle text box Ma mi sono inchiodato per quanto riguarda le check box e le select mi hanno suggerito questo codice ma non funziona, mi da errore di sintassi. <% rs.MoveFirst If not rs.EOF then while not rs.EOF if rs('Sesso')='maschio' then Response.Write "<td width='30'>maschio</td><td width='30' colspan='2' ><input type='radio' name='Sesso' value='maschio' checked></td></tr><tr> <td width='30'>femmina</td><td width='30' colspan='2' ><input type='radio' name='Sesso' value='Femmina'></td></tr><tr>" else Response.Write "<td width='30'>maschio</td><td width='30' colspan='2' ><input type='radio' name='Sesso' value='maschio'></td></tr><tr> <td width='30'>femmina</td><td width='30' colspan='2' ><input type='radio' name='Sesso' value='Femmina' 'checked'></td></tr><tr>" End if rs.MoveNext Wend End if %> con le select non ho la più pallida idea di come poter fare. La select registra una provincia, poniamo Genova. Allora , io recupero i dati del form e vorrei trovarmi la select con "genova " selezionata e poi eventualmente cambiarla. Aiutatemi che sto messo molto male coi tempi |
![]() |
![]() |
![]() |
#2 |
Messaggi: n/a
|
Ciao, allora ASP non lo conosco ma di sicuro il metodo è uguale che in PHP.
Guarda ti posto un porzione di codice PHP per un CMS che stò sviluppando spero possa esserti utile per capire la logica di come tenere selezionata una voce in una SELECT Codice:
<div class="campo <?php echo $class_corso; ?>"> <label for="f_corso">Corso *</label> <select id="f_corso" name="corso"> <option value="0">-Seleziona un Corso-</option> <?php $sql = "SELECT * FROM corsi ORDER BY corso_nome asc"; $result = mysql_query($sql); if($row = mysql_fetch_array($result)){ do{ $selected = ""; if($row["corsoID"] == $_REQUEST["corso"]){ $selected = 'selected="selected"'; } ?> <option value="<?php echo $row['corsoID']; ?>" <?php echo $selected; ?>><?php echo $row['corso_nome']; ?></option> <?php }while($row = mysql_fetch_array($result)); } ?> </select> </div> quando recupero i dati dal DB farò in modo che: $_REQUEST["corso"] = $row["corsoID"]; la variabile $_REQUEST["corso"] contenga l'informazione sull'ID del corso indicato a DB. perchè lo metto in una variabile globale di $_REQUEST[]? Lo faccio perchè se nell'interfaccia utente l'utente seleziona una OPTION diversa e poi fa un SUBMIT la stessa mi tiene in memoria l'input dell'utente e non quello che avevo prima recuperato dal DB. Spero di essere stato chiaro e che ti possa tornare utile. Ciao |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 2776
|
Grazie, ora me la studio
![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Quote:
Il codice che hai scritto mi sembra corretto. Tranne che in VBSCRIPT ci vogliono i DOPPI apici per le stringhe. Quindi non rs('sesso')='maschio', MA rs("sesso")="maschio" Vedi se è solo quello il problema, ma a me pare di si... ![]() Ciao.
__________________
0 A.D. React OS La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani... IL MIO PROFILO SOUNDCLOUD! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 2776
|
Il codice funziona ora, solo che ha un effetto collaterale, diciamo , cosi , che non riesco a spiegarmi. Forse quel codice blocca l'rs ?
Ma in che modo? Succede che , se metto in sequenza diversi codici di ricerca dei pulsanti di opzione ( due per il sesso, campo "sesso", tre per lo stato civile : campo "stato civile") , questi vengono correttamente richiamati. Invece la ricerca per gli altri input non funziona più. Questo è il codice: Codice:
set rs = Server.CreateObject("ADODB.RecordSet") rs.open sql,conn_base rs.MoveFirst If not rs.EOF then while not rs.EOF if trim(rs("statocivile"))="celibe" then Response.Write "<td width='30'>celibe</td><td width='30' ><input type='radio' name='statocivile' value='celibe' checked></td></tr><tr>" Response.Write "<td width='30'>nubilee</td><td width='30' ><input type='radio' name='statocivile' value='nubile' ></td></tr><tr>" Response.Write "<td width='30'>coniugato</td><td width='30' ><input type='radio' name='statocivile' value='coniugato'></td></tr><tr>" elseif trim(rs("statocivile"))="nubile" then Response.Write "<td width='30'>'celibe</td><td width='30' ' ><input type='radio' name='statocivile' value='celibe'></td></tr><tr>" Response.Write "<td width='30'>nubile</td><td width='30' ><input type='radio' name='statocivile' value='nubile' checked></td></tr><tr>" Response.Write "<td width='30'>coniugato</td><td width='30' ><input type='radio' name='statocivile' value='coniugato' ></td></tr><tr>" else Response.Write "<td width='30'>celibe</td><td width='30' ' ><input type='radio' name='statocivile' value='celibe'></td></tr><tr>" Response.Write "<td width='30'>nubile</td><td width='30' ><input type='radio' name='statocivile' value='nubile' ></td></tr><tr>" Response.Write "<td width='30'>coniugato</td><td width='30' ><input type='radio' name='statocivile' value='coniugato' checked></td></tr><tr>" End if rs.MoveNext Wend End if %> <tr><td ><h5>figli</h5></td> <td colspan="2" ><input type=text name="figli" value="<%=trim(rs("figli"))%>" size="50"></td></tr> Sopra il codice dello stato civile c'è un codice uguale ed entrambi funzionano. Sotto quel codice, l'input type= text e il select non funzionano più e restituiscono quell'errore. Il codice di ricerca della casella di testo,che precede il codice invece funziona benissimo. Sotto alle check box, il cui codice funziona benone, si vede invece una casella di testo minuscola con la scritta : "<font face=" ma il codice è questo: Codice:
<td colspan="2" ><input type=text name="figli" value="<%=trim(rs("figli"))%>" size="50"></td></tr> ![]() all'interno della casella di testo, invece del valore, si legge : font face , un tag che non è scritto da nessuna parte nella tabella. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Quell'errore ti esce perchè tu leggi tutta la tabella fino al'EOF e poi cerchi di leggere il campo figli oltre la fine dei record! E' per questo che ti da errore! Il campo figli è di tutti i record, vero? Se è così, quel pezzo di codice devi metterlo DENTRO al while!
__________________
0 A.D. React OS La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani... IL MIO PROFILO SOUNDCLOUD! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 2776
|
Vuoi ridere? Si bloccava tutto perchè il recordset era aperto sopra...
Grazie comunque, da solo nn ci sarei arrivato. Codice funzionante. Codice:
if trim(rs("sesso"))="maschio" then Response.Write "<td width='30'>maschio</td><td width='30' ><input type='radio' name='Sesso' value='maschio' checked></td></tr><tr>" Response.Write "<td width='30'>femmina</td><td width='30' ><input type='radio' name='Sesso' value='Femmina'></td></tr><tr>" else Response.Write "<td width='30'>maschio</td><td width='30' ' ><input type='radio' name='Sesso' value='maschio'></td></tr><tr>" Response.Write "<td width='30'>femmina</td><td width='30' ><input type='radio' name='Sesso' value='Femmina' checked></td></tr><tr>" End if |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:53.