Radio button e DB

workgio

Nuovo Utente
1 Feb 2009
5
0
0
Salve
Sono nuovo di questo forum.
Ho un problema con tre radio button inseriti in una form collegata ad un database sql server.
In pratica selezionando il radio button, e facendo poi il submit, il valore mi viene visualizzato correttamente e correttamente mi viene salvato nel DB. Quando, poi, vado a richiamare il record i radio button risultano tutti e tre vuoti anche se nel db il valore è presente.
Questa è la sintassi che ho utilizzato:
<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "SI" Then %> checked<% End If %> value="SI"><font size="2"><%= "SI" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NO" Then %> checked<% End If %> value="NO"><font size="2"><%= "NO" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NN" Then %> checked<% End If %> value="NN"><font size="2"><%= "NN" %></font>

Non riesco a capire dov'è l'errore.
Grazie a chi riesce a darmi una mano
 
Ciao :)
Sembra che l'if non si verifichi mai.

Come valorizzi la variabile x_NormeViolateSi ?
Hai provato a stamparla sulla pagina (facendo <%=x_NormeViolateSi%>) per vedere che valore ha?
 
Ciao
Si ho provato a stamparla ed il valore è presente ed è corretto.
Nel senso che se clicco su "SI" il valore mi viene visualizzato correttamente sia dopo il submit e sia quando richiamo il record.
Del resto negli altri casi dove, invece, ho solo due scelte, "SI" e "NO", ma che invece ho utilizzato False e true il problema non si presenta.
Così anche per tutti gli altri campi.
Comunque il precorso è il seguente:

..........
X_NormeViolateSI = Request.form("X_NormeViolateSI")
......

Faccio la connessione al db per leggere i dati:

....
X_NormeViolateSI = rs("X_NormeViolateSI")

Infine scrivo sul DB le Modifiche
.....
tmpFld = X_NormeViolateSI
If tmpFld = "NO" Then
rs("X_NormeViolateSI") = "NO"
Else If tmpFld = "SI" Then
rs("X_NormeViolateSI") = "SI"
Else If tmpFld = "NN" Then
rs("X_NormeViolateSI") = "NN"
End

Spero di essere stato chiaro.
 
Non capisco il senso di questo codice
Codice:
....
Infine scrivo sul DB le Modifiche
.....
tmpFld = X_NormeViolateSI
If tmpFld = "NO" Then
rs("X_NormeViolateSI") = "NO"
Else If tmpFld = "SI" Then
rs("X_NormeViolateSI") = "SI"
Else If tmpFld = "NN" Then
rs("X_NormeViolateSI") = "NN"
...
1. Non fai prima a fare direttamente rs("X_NormeViolateSI") = tmpFld ?


2. Il codice per stampare il valore dove lo hai inserito? La cosa meglio sarebbe che lo inserissi qui: (vedi parte in blu)
Codice:
...
[COLOR="Blue"]<%=x_NormeViolateSi%>[/COLOR]
<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "SI" Then %> checked<% End If %> value="SI"><font size="2"><%= "SI" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NO" Then %> checked<% End If %> value="NO"><font size="2"><%= "NO" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NN" Then %> checked<% End If %> value="NN"><font size="2"><%= "NN" %></font>
...

Facci sapere :)
 
Ciao
Il codice della prima domanda non ha senso ma ho provato a forzarne il valore, causa disperazione :-)).
Per quanto riguarda la seconda il valore l'ho stampanto esattamente dove mi hai consigliato tu ed effettivamente mi viene valorizzato correttamente.
Cioè se clicco su SI mi stampa SI ecc..
Ma a me non interessa la stampa del valore mi interessa invece che il pallino sia nella posizione corretta :-)))
 
..
Ma a me non interessa la stampa del valore mi interessa invece che il pallino sia nella posizione corretta :-)))
La posizione corretta del pallino dipende dal valore che ti appare nella stampa che ti ho suggerito di provare a fare, perchè serve per capire se poi l'if si va a verificare o meno: :)

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "SI" Then %> checked<% End If %> value="SI"><font size="2"><%= "SI" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NO" Then %> checked<% End If %> value="NO"><font size="2"><%= "NO" %>&nbsp;</font>

<input type="radio" name="x_NormeViolateSi"<% If x_NormeViolateSi = "NN" Then %> checked<% End If %> value="NN"><font size="2"><%= "NN" %></font>


Mi par strano infatti che stampandoti il valore giusto la condizione relativa non si verifichi...


Prova ad editare il codice della pagina una volta richiamata sul browser, e vedi se il "checked" è stato scritto nel radio corrispondente. Se così non fosse significa che ci son problemi nella variabile x_NormeViolateSi.
 
Ciao
Ho provato a fare come mi hai suggerito
allora dopo aver aggiunto la riga <% = x_NormeviolateSi %>
Appena inserito la scelta su NO ed aver fatto il submit funziona tutto correttamente il pallino è al posto giusto (evidenziato in blu) ed il valore stampato è corretto (evidenziato in rosso)
Questo è il frammento di codice editato nel browser:

<p align="center"><span class="aspmaker"><font face="Arial">
NO
<input type="radio" name="x_NormeViolateSi" value="SI"><font size="2">SI&nbsp;</font>
<input type="radio" name="x_NormeViolateSi" checked value="NO"><font size="2">NO&nbsp;</font>
<input type="radio" name="x_NormeViolateSi" value="NN"><font size="2">NN</font>
</font></span><font size="2" face="Arial">&nbsp;</font></td>
<td bgcolor="#0099CC" width="80" height="20">

Nel momento in cui esco e poi rientro richiamando il record modificato il valore stampato è corretto (evidenziato in rosso) ma non è presente alcun checked come puoi vedere nello stesso frammento di codice

<p align="center"><span class="aspmaker"><font face="Arial">
NO
<input type="radio" name="x_NormeViolateSi" value="SI"><font size="2">SI&nbsp;</font>
<input type="radio" name="x_NormeViolateSi" value="NO"><font size="2">NO&nbsp;</font>
<input type="radio" name="x_NormeViolateSi" value="NN"><font size="2">NN</font>
</font></span><font size="2" face="Arial">&nbsp;</font></td>
<td bgcolor="#0099CC" width="80" height="20">

Non riesco a spiegarmi dove sta l'errore
 
Problema risolto :beer::beer::jolly:
Avevi ragione tu il problema era nella variabile.
E' bastato aggiungere un TRIM quando richiamo il valore dal DB
X_NormeViolateSI = Trim(rs("X_NormeViolateSI"))
E tutto ha iniziato a funzionare magicamente.
Non ci avevo pensato in quanto nel DB il campo è formattato come Char a lunghezza 2.
Grazie comunque per il supporto
Ciao
 

Discussioni simili