[Python] Obteniendo el valor de un checkbox HTML [RESUELTO]

Iniciado por MA40, 15 Agosto 2016, 14:07 PM

0 Miembros y 1 Visitante están viendo este tema.

MA40

Hola.

No sé si lo estoy programando bien, evidentemente NO, pues no funciona.

Primero, tengo el código en HTML en el cual se solicita un checkbox mediante un formulario, si está seleccionado el checkbox, se asigna a una variable el valor "Cierto" y si no "Falso, luego se envía hacia un script hecho en Python "checkbox.py" para que se imprima la variable.

El código en HTML es el siguiente:

Código (html4strict) [Seleccionar]
<html>
<head>
<script language="javascript" type="text/javascript">
function envia(){
 if (document.formulario.comprobar_caja.checked) {
   document.formulario.comprobar_caja.value="Cierto";
 }
 else {
   document.formulario.comprobar_caja.value="Falso";
 }
 document.formulario.submit();
}
</script>
</head>

<body>
<form action="http://...path.../checkbox.py" name="formulario" method="post">
 <input type="checkbox" name="comprobar_caja" value=""> Selecciona o no la caja<br><br></td>
 <input type="button" value="Pulsar" onclick="envia()">
</form>
</body>
</html>


Y el código (checkbox.py) en Python es:

Código (python) [Seleccionar]
#!/usr/bin/python

print "Content-type: text/plain\n\n"
import cgi

form = cgi.FieldStorage()
var_caja = form["comprobar_caja"].value

print var_caja


Si se selecciona el checkbox, funciona correctamente, pero si no se selecciona, no funciona. ¿Qué puede ser?

Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

tincopasan

te aclaro que soy muy perro en html. pero lo haría así:
Código HTML
Código (html4strict) [Seleccionar]

<html>
<head>
<script language="javascript" type="text/javascript">
function envia(){
  document.formulario.submit();
}
</script>
</head>
<body>
<form action="http://localhost/pagina01/checkbox.py" name="formulario" method="post">
  <input type="checkbox" name="comprobar_caja" value="on" /> Selecciona o no la caja<br><br></td>
  <input type="button" value="Pulsar" onclick="envia()">
</form>
</body>
</html>


código (checkbox.py)

Código (python) [Seleccionar]

#!C:\Python34\python   
#en mi caso es necesaria esta línea porque probé en un servidor local!!


print ("Content-type: text/plain\n\n")
import cgi

form = cgi.FieldStorage()
if form.getvalue("comprobar_caja"):
    var_caja= "Cierto"
else :
    var_caja = "Falso"
   
print(var_caja)   

espero que te sirva.
Saludos.

MA40

¡Correcto!

Funciona y me sirve, muchas gracias tincopasan.

Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

+ 1 Oculto(s)