
No se si he captado lo que quieres... Supongamos que tenemos una página con todos los campos de la votación.
votar.asp
Código:
.....
<form action="resultados.asp">
<select name="I_CIUDAD" id="I_CIUDAD">
<option selected="selected">----</option>
<%
strSQLMun = "SELECT I_OPCION, OPCION from OPCION ORDER BY OPCION ASC"
CrearRS dbi,RSMun,strSQLMun,0
While not RSMun.EOF
' Supongo que OPCION viene de la parametrizacion de la página
If request("OPCION") = RSMUN("OPCION") Then
OPCION_selected = " selected"
Else
OPCION_selected = ""
End If
%>
<option value="<%=RSMun("I_OPCION")%>"<%=OPCION_selected%>>
<%=Server.HTMLEncode(RSMun("OPCION"))%>
</option>
<%
RSMun.MoveNext
Wend
CerrarObj(RSMun)
%>
</select>
<input type="radio" name="VOTO" value="SI" />
<input type="radio" name="VOTO" value="NO" />
<input name="e" type="hidden" value="<%=I_ENCUESTA%>" />
<input class="inputbutton" name="submit" value="Votar" type="submit" /><br />
</form>
Como ves, prescindo de
<input name="voto" type="hidden" value="1" />
y de
<input name="I_CIUDAD" type="hidden" value="<%=I_CIUDAD%>" />
Luego, en la página resultados.asp
resultados.asp
Código:
' Comprobamos el código con una hipotética funcion
' checkData que limpia de datos malignos las variables
Dim ciudad, tipo_encuesta, respuesta
ciudad = checkData(request.form("I_CIUDAD"))
tipo_encuesta = checkData(request.form("e"))
respuesta = checkData(request.form("VOTO"))
' Comprobamos si existe el registro
sSQL = "SELECT * FROM X_ENC_ENC_OP WHERE I_CIUDAD=" & ciudad _
" AND I_ENCUESTA = " & tipo_encuesta _
" AND I_ENCUESTA_OPCION = " & respuesta
CrearRS dbi,rs,sSQL,0
if rs.EOF then ' existe
sSQL = "UPDATE X_ENC_ENC_OP " & _
"SET VOTOS = VOTOS+1 " & _
" WHERE I_ENCUESTA=" & tipo_encuesta & _
" AND I_ENCUESTA_OPCION=" & respuesta & _
" AND I_CIUDAD=" & ciudad
else
sSQL = "INSERT INTO X_ENC_ENC_OP " & _
"(VOTOS, I_ENCUESTA, I_ENCUESTA_OPCION, I_CIUDAD)" _
" VALUES " _
"(1, " & tipo_encuesta & ", " & respuesta & ", " & ciudad & ")"
end if
CerrarObj(RS)
CrearRS dbi,rs,sSQL,0
CerrarObj(RS)
Como ves, si el combobox tiene las ciudades (I_CIUDAD) no hace falta ningun campo mas, el I_ENCUESTA supongo que es una codificación para los tipos de encuestas que haces y los radio button traen ya la respuesta ('SI' o 'NO')
No se si es esto lo que necesitas, pero yo lo veo muy claro. Si me he equivocado en algo, siento no haberte entendido bien
Un saludo