PHP - Formulario con radio button y botones

 
Vista:
sin imagen de perfil

Formulario con radio button y botones

Publicado por leo (1 intervención) el 01/07/2016 19:15:12
Estimados, desde ya agradezco sus comentarios. No soy muy avezado en programación, pero hago el intento.

Tengo el siguiente formulario, con 4 radio button (Port1, Port2 Port3 y Port4) y tres botones (Reset, On y Off).


pdu

La idea es que al seleccionar un radio, me ejecute la instrucción según el botón que presione. Las instrucciones las tengo claras (y probadas de forma independiente). El tema es que no sé cómo hacerlo en el formulario (adjunto código).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<div class="home">
      <h1> </h1>
      <form action="" name="frmLogin" method="post" >
        <img src="/system/img/pdu.jpg"></br>
		<p class="remember_me">
		<div ALIGN=center>
                <input type="radio" name="pos1" value="port1" checked><label>Port 1</label>
		<input type="radio" name="pos1" value="port2"><label>Port 2</label>
		<input type="radio" name="pos1" value="port3"><label>Port 3</label>
                <input type="radio" name="pos1" value="port4"><label>Port 4</label>
			<label>Status : OFF</label>
			<label>Status : OFF</label>
			<label>Status : OFF</label>
			<label>Status : OFF</label>
		 </div>
 
		<div ALIGN=left>
			<p>Puerto 1 : </p>
			<p>Puerto 2 : </p>
			<p>Puerto 3 : </p>
			<p>Puerto 4 : </p>
		 </div>
 
		</p>
		<input TYPE='submit' VALUE='Reset' NAME='reset'>
		<input TYPE='submit' VALUE='On' NAME='on'>
		<input TYPE='submit' VALUE='Off' NAME='off'>
      </form>
 
	  <div ALIGN=right>
	  <form action='sessionclose.php' method='post'><input TYPE='submit' VALUE='Cerrar sesion' NAME='cerrar'></form>
	 </div>
</div>

He intentado con estructuras IF, Switch... pensaba en hacer algo como lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if(isset($_POST[reset])){
switch($pos1)
{
case"port1":
// ACCION NUMERO 1
 
break;
case"port2":
// ACCION NUMERO 2
 
break;
case"port3":
// ACCION NUMERO 3
 
break;
case"port4":
// ACCION NUMERO 4
break;
}
}
?>

Bueno, espero sus comentarios.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM
Val: 152
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Formulario con radio button y botones

Publicado por VRM (192 intervenciones) el 02/07/2016 07:37:24
Hola:
Entiendo que pulsando reset se ponen a off todos los puertos y pulsando on o off se activa o desactiva, respectivamente, el puerto seleccionado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
if ( isset($_POST[pos1]) ){ // Si se envía por post se procesa la orden y en caso contrario no hace nada
   $pos1 = $_POST[pos1];
   if ( isset($_POST[reset] ){
      // Pone todos los puertos a off
   }
   if ( isset($_POST[on] ){ // Poner un puerto a on
      switch ($post1) {
         case 'port1':
            // Poner a on el puerto 1
            Break;
         case 'port2':
            // Poner a on el puerto 2
            Break;
         case 'port3':
            // Poner a on el puerto 3
            Break;
         case 'port4':
            // Poner a on el puerto 4
            Break;
         }
      }
   if ( isset($_POST[off] ){ // Poner un puerto a off
      switch ($post1) {
         case 'port1':
            // Poner a off el puerto 1
            Break;
         case 'port2':
            // Poner a off el puerto 2
            Break;
         case 'port3':
            // Poner a off el puerto 3
            Break;
         case 'port4':
            // Poner a off el puerto 4
            Break;
         }
      }
}

Si existe una función para poner a on o a off un puerto cuya interface sea:
1
modifica_puerto(numero_de_puerto,valor)
Puede simplificarse el código anterior
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ( isset($_POST[pos1]) ){ // Si se envía por post se procesa la orden y en caso contrario no hace nada
   $pos1 = $_POST[pos1];
   $port = substr($post1,4);
   if ( isset($_POST[reset] ){
      for ($i=1;$i<5;$i++){
           modifica_puerto($i,"off");
       }
   }
   if ( isset($_POST[on] ){
       modifica_pueto($port,"on");
   }
   if ( isset($_POST[off] ){
       modifica_pueto($port,"off");
   }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar