PHP - como usar raddiobuttons en filas de una tabla

   
Vista:

como usar raddiobuttons en filas de una tabla

Publicado por giuli (39 intervenciones) el 29/11/2016 18:00:23
hola amigos..tengo este codigo en php pero el valor del raddio button no llega:

1
2
3
4
5
6
7
8
9
10
11
function obtenerFalta($i){
 
    if (isset($_POST['alumno'.$i])){
 
        $valor=$_POST['alumno'].$i;
    }else{
        // asistio
        $valor=0;
    }
 return $valor;
};

el formulario lo envio con jquery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$("#Actualizar").click(function(){
 
var url = "insertar.php"; // El script a dónde se realizará la petición.
var turno = $("#turno").val();
var total = $("#total").val();
var lista = $("#lista_alumnos").serialize();
var idalu = $("#idalu").val();
 
    $.ajax({
           type: "POST",
           url: url,
           data:{turno , lista, total,idalu} ,// Adjuntar los campos del formulario enviado.
           success: function(data)
           {
               $("#respuesta").html(data); // Mostrar la respuestas del script PHP.
           }
         });
 
     // Evitar ejecutar el submit del formulario.
 });

lo que ocurre es que cada fila tiene que tener 3 radiobuttons.
Pero si les pongo el mismo valor en "name" se selecciona uno solo en el formulario (uno solo de la tabla).
entonces puse la palabra alumno mas un vslor que va iterando.

Como hacer en jquery para enviar para cada alumno el valor del radio button checked?
osea quiero tener una tabla con vario raddiosbutton por fila, donde solo se seleccione uno de cada fila
y luego mandar idalumno y tipoinasistencia(esta en el valor del button).-

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 xve

como usar raddiobuttons en filas de una tabla

Publicado por xve (6037 intervenciones) el 29/11/2016 20:40:43
Hola Giuli, a que te refieres con que no llega? como lo envías a la función obtenerFalta()? si los radio buton los cargas desde jquery, tendrás que definir la función un vez cargado el contenido desde AJAX.
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

como usar raddiobuttons en filas de una tabla

Publicado por giuli (39 intervenciones) el 29/11/2016 22:38:03
muchas gracias por responder te pido x favor me ayudes..

este es el codigo completo de insertar:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
 
require_once('PHPMailer-master/class.phpmailer.php');
 
include_once'../../PHP/Conexion.php';
$conectar = conexionBD();
function obtenerFalta($i){
 
                if (isset($_POST['alumno'.$i])){
 
                    $valor=$_POST['alumno'].$i;
                }else{
                    // asistio
                    $valor=0;
                }
             return $valor;
            };
function obtenervalorFalta($i){
                if (isset($_POST['alumno'.$i])){
                    $valor=$_POST['alumno'.$i];
                    switch($valor){
                        case 1:
                            $falta="inasistencia completa";
                            break;
                        case 2:
                            $falta="un cuarto de falta";
                            break;
                        case 3:
                            $falta="media falta";
                            break;
                        case 4:
                            $falta="un cuarto de falta";
                            break;
                        case 5:
                            $falta="media falta";
                            break;
                    }
                    }
             return $falta;
            };
$total=(int)$_POST['total'];
$turno=$_POST['turno'];
 
for ($x=1;$x<$total+1;$x++){
    $fecha=date("20y-m-d");
            $tipo=obtenerFalta($x);
 
            $idalumno=$_POST['idalu'].$x;
 
            if ($tipo!=0){
 
            $sqlinasistencias="INSERT INTO inasistencia (fecha,idtipoinasistencia,idalumno)";
            $sqlinasistencias.=" VALUES ('".$fecha."',".$tipo.",";
            $sqlinasistencias.=$idalumno.");";
 
            $query=insert($conectar,$sqlinasistencias);
 
            if ($query==true){
                $msj="actualizado correctamente";
            }else{
                $msj="error en la transaccion";
            }
            }else{
                $msj="no hay inasistencias";
            }
 
             echo $msj;
            }
 
 
 
?>

y el html

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="content-type" content="text/html" />
 
	<title>Sistema de Gestion de Alumnos</title>
    <link rel="stylesheet" href="../../Css/Formularios.css"/>
    <script src="../../../Sistema/jquery-3.1.0.js"></script>
    <script type="text/javascript" src="listado.js"></script>
</head>
<body>
    <div id="contenedor">
 
        <header id="cabecera">
            <div id="C1">
                <div class="imagen1"><div class="imagen2"></div></div>
                <p class="icono">GESTION.AR</p>
            </div>
 
            <div id="box">
               <p id="titulo">Sistema de Gestión Escolar</p>
            </div>
        </header>
        <form action="" method="post" id="busqueda">
         <section id="seccion">
            <p>Seleccione el curso y la division a listar </p><br />
            <p>Curso:<select id="curso" name="cursos">
            <option></option>
          </select> Division:
           <select id="division" name="divisiones">
             <option>A</option>
           </select>Turno:
           <select id="turno" name="turno">
           <option value="" selected="selected">Seleccione...</option>
            <option value="M">Mañana</option>
            <option value="T">Tarde</option>
           </select>
           <input type="button" id="listar" name="Listar" value="Obtener listado"/></p>
       <p><?php if (isset($msj)){ echo $msj;}?></p>
       </section>
 
    </form>
        <form method='post' id='listado' name='listado'>
         <section id='seccion'>
        <div id="lista_alumnos" style="width: auto;"></div>
 
 
        </section>
 
      <div id="respuesta"></div>
        <input  type="button" id="Actualizar" value="actualizar"/>
 </form>
 
 
        <footer id="pie"></footer>
 
    </div>
 
 
</body>
</html>

ahi arriba estan todos los form y sus div..
probe hacer un

1
echo ($_POST['alumno'.$i]);

y obtengo un undefined index alumno1,alumno2,etc
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
Imágen de perfil de Lawliet

como usar raddiobuttons en filas de una tabla

Publicado por Lawliet zhapyro_5@hotmail.com (227 intervenciones) el 29/11/2016 23:43:13
Hola...

Aquí te proporciono un ejemplo sencillo pero sumamente funcional del manejo del componente Radio Button dentro de una tabla. Lleno una tabla con todos los usuarios existentes en base de datos, al final de cada registro agrego el Radio Button pasando como valor el ID del usuario en base de datos. Posteriormente hago un recorrido de la tabla sobre el tipo de input y que este seleccionado. Finalmente paso el valor a un archivo PHP mediante AJAX.

formulario.php
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html>
    <head>
        <title>Tabla &#38; Radio Button</title>
        <link rel="stylesheet" type="text/css" href="../css/styles.css"/>
		<script type="text/javascript" src="../js/jquery-1.10.2.js"></script>
		<script type="text/javascript" src="../js/radio.js"></script>
    </head>
    <body link="#08298A" vlink="#08298A" alink="#08298A">
		<table border="1" id="tblUsuarios" name="tblUsuarios">
			<tr>
				<th colspan="6">Usuarios</th>
			</tr>
			<tr>
				<th>ID</th>
				<th>Nickname</th>
				<th>Password</th>
				<th>Nombre</th>
				<th>E-mail</th>
				<th></th>
			</tr>
			<?php
				// Conexión a base de datos.
				$conn = @mysqli_connect("localhost","root","","sistema") OR DIE ("Error de conexión: " . mysqli_connect_error());
				// Creación y/o formación de la consulta.
				$sql = "SELECT * FROM usuario";
				// Ejecución y resultado de la consulta.
				$result = mysqli_query($conn,$sql);
				if (!$result) {
					DIE("Error en la consulta: " . mysqli_error($conn));
				} else {
					if($row = mysqli_fetch_array($result)){
						do{
							echo "<tr>
									<td>".$row[0]."</td>
									<td>".$row[1]."</td>
									<td>".$row[2]."</td>
									<td>".$row[3]."</td>
									<td>".$row[4]."</td>
									<td align='center'><input type='radio' name='rdbId' value='".$row[0]."'/></td>
								</tr>";
						} while($row = mysqli_fetch_array($result));
					} else {
						echo "<tr><td colspan='6'>Sin resultados.</td></tr>";
					}
				}
			?>
			<tr align="center">
				<td colspan="6">
					<input type="submit" value="Mostrar" id="btnMostrar" name="btnMostrar"/>
				</td>
			</tr>
		</table>
		<div id="divResult" name="divResult"></div>
		<a href="../index.html"><b>Regresar</b></a>
    </body>
</html>

radio.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$(document).ready(function(){
	$("#btnMostrar").click(function() {
		var $usuariosId = 0;
 
		$('#tblUsuarios').find('input[type=radio]:checked').each(function() {
			$usuariosId = $(this).val();
		});
 
		if($usuariosId != 0) {
			$.ajax({
				url:'../control/radio.php',
				type:'POST',
				cache: false,
				data: {action:'consultar', usuariosId:$usuariosId}
			}).done(function(response){
				$("#divResult").html(response);
			});
		} else {
			alert("Seleccione el usuario a consultar.");
			$("#divResult").html("");
		}
	});
});

radio.php
1
2
3
4
5
6
7
8
9
10
<?php
	$conn = @mysqli_connect("localhost","root","","sistema") OR DIE ("Error de conexión: " . mysqli_connect_error());
 
	if ($_SERVER['REQUEST_METHOD'] == "POST"){
		if($_POST['action'] == 'consultar') {
			$usuariosId = $_POST['usuariosId'];
			echo "<b>ID Usuario: </b>".$usuariosId;
		}
	}
?>

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

como usar raddiobuttons en filas de una tabla

Publicado por giuli (39 intervenciones) el 29/11/2016 23:58:35
muchas gracias, pero falta una cosa..yo tengo un solo boton de guardar para todos los alumnos, y tu codigo pisa el valor, osea devuelve el de la ultima fila...Deberia hacer un for o un each ??
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