PHP - almacenar datos en un array de todos los radiobutton seleccionados e insertar

 
Vista:
sin imagen de perfil

almacenar datos en un array de todos los radiobutton seleccionados e insertar

Publicado por Evi (1 intervención) el 08/09/2017 23:23:23
Buenas tardes:

Quiero que me ayuden en resolver algo que vengo dándole vuelta y vuelta y no encuentro la solución.

Tengo el siguiente formulario:


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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php
date_default_timezone_set('America/Lima');
$inicio = date("Y-m-d H:i:s");
 
?>
<div class="modal fade" id="calificar" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header no-padding">
 
        <div class="table-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                <span class="white">&times;</span>
            </button>
 
           Fecha y hora de inicio: <?php echo $inicio; ?>
 
        </div>
      	<h2 class="blue smaller color-blue center">Agregar Monitoreo al docente</h2>
      </div>
      <div class="modal-body">
      	<div class="row">
        	<!--inicio Calificar-->
        	<div class="col-xs-12">
                <div class="widget-box transparent">
                <form name="frmMonitoreo" id="frmMonitoreo">
                    <div class="widget-header widget-header-small">
                        <h4 class="widget-title smaller green">
                            <i class="ace-icon fa fa-check-square-o bigger-110"></i>
                            Evaluación
                            <button type="button" class="pull-Middle btn btn-sm btn-primary btn-white btn-round" id="guardarcalificacion" data-dismiss="modal" name="enviar" value="Enviar">
                                Calificar
                                <i class="ace-icon fa fa-arrow-right icon-on-right bigger-110"></i>
                            </button>
                        </h4>
                    </div>
 
                    <div class="widget-body">
 
                        <div class="widget-main padding-16">
                            <div class="clearfix">
                            <h5 class="header blue bolder smaller">Datos Generales</h5>
 
                            	<div class="row">
                                	<div class="col-lg-6">
                                    	<div class="form-group">
                                            <label class="col-lg-4 control-label no-padding-right text-right"><strong>Docente: </strong></label>
                                            <div class="col-lg-8">
                                                <input type="text" name="" id="nombreCompletou" class="col-lg-12 col-xl-10"/>
                                            </div>
                                        </div>
                                        &nbsp;
                                        <div class="form-group">
                                            <label class="col-lg-4 control-label no-padding-right text-right"><strong>DNI: </strong></label>
                                            <div class="col-lg-8">
                                                <input type="text" name="" id="dniu" class="col-lg-12 col-xl-10"/>
                                            </div>
                                        </div>
                                        &nbsp;
                                        <div class="form-group">
                                            <label class="col-lg-4 control-label no-padding-right text-right"><strong>Unidad Didáctica: </strong></label>
 
                                            <div class="col-lg-8">
                                                <input type="text" name="" id="codigocursou" class="col-lg-12 col-sm-10"/>
                                            </div>
                                        </div>
                                		&nbsp;
                                        <div class="form-group">
                                            <label class="col-lg-4 control-label no-padding-right text-right"><strong>Fecha: </strong></label>
 
                                            <div class="col-lg-8">
                                                <input type="text" name="" id="iniciomonitoreo" value="<?php echo $inicio; ?>"class="col-lg-12 col-sm-10"/>
                                            </div>
                                        </div>
                                        &nbsp;
                                    </div>
 
 
                                        &nbsp;
                                        <div class="form-group">
                                            <label class="col-lg-3 control-label no-padding-right text-right"><strong>Turno: </strong></label>
 
                                            <div class="col-lg-9">
                                                <label class="radio-inline">
                                                <input type="radio" name="turno" id="Maniana" value="1"> Mañana
                                                </label>
                                                <label class="radio-inline">
                                                <input type="radio" name="turno" id="Tarde" value="2"> Tarde
                                                </label>
                                            </div>
                                        </div>
 
                                    </div>
                                </div>
                            <h5 class="header blue bolder smaller">Instrumento de Monitoreo</h5>
						<?php
                            $query = mysqli_query($conn,"SELECT `iditems`,`item`,`puntaje` FROM `items` WHERE 1");
                            $cont = mysqli_num_rows($query);	$cnt = 0;
                            $respuesta="";
                            $contador=1;
                            if($cont > 0){
                                while($list = mysqli_fetch_row($query)){
                          ?>
								<div class="col-xs-12 page-header">
                                <div class="form-group">
                                    <label class="col-lg-6 control-label no-padding-right text-justify">
									<?php echo '<strong>'.$contador.'.- </strong>'.$list[1].'  <strong>(Pts. '.$list[2].'):</strong>' ?></label>
                                    <div class="col-lg-2">
                                        <label class="radio-inline">
                                        <input type="radio" name="<?php echo $list[0] ?>" id="<?php echo $list[0]; ?>" value="<?php echo $list[2]; ?>"></label>
                                        <label class="radio-inline">
                                        <input type="radio" name="<?php echo $list[0]; ?>" id="<?php echo $list[0]; ?>" value="0">No</label>
                                    </div>
                                    <div class="col-lg-4">
                                        <!--<label class="col-sm-2 control-label">Comentario</label>-->
                <!--                        <input class="col-sm-10" type="text" name=""  />-->
                                        <textarea class="form-control" rows="1" name="comentario<?php echo $list[0]; ?>" id="comentario<?php echo $list[0]; ?>"></textarea>
 
                                    </div>
                                </div>
                                </div>
					<?php
                                $contador++;
                                }
                            }
                            mysqli_free_result($query);
                        	?>
                                <div class="form-group">
                                    <label class="col-sm-4 control-label no-padding-right">Seleccionado</label>
                                    <div class="col-sm-8">
                                        <input type="text" readonly=”readonly” name="" id="idseleccionadou" class="col-xs-12 col-sm-10"/>
                                    </div>
                                </div>
 
                            </div>
                        </div>
                    </div>
                 </form>
                </div>
           </div>
        </div>
      </div>
    </div>
  </div>
</div>

Este formulario tiene los siguientes campos:
idseleccionadou
idsede
idprograma
idciclo
idbloque
idturno
codigocurso
iniciomonitoreo

y el formulario autogenerado mediante una consulta:
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
<h5 class="header blue bolder smaller">Instrumento de Monitoreo</h5>
<?php
$query = mysqli_query($conn,"SELECT `iditems`,`item`,`puntaje` FROM `items` WHERE 1");
$cont = mysqli_num_rows($query);	$cnt = 0;
$respuesta="";
$contador=1;
if($cont > 0){
    while($list = mysqli_fetch_row($query)){
?>
	<div class="col-xs-12 page-header">
    <div class="form-group">
        <label class="col-lg-6 control-label no-padding-right text-justify">
		<?php echo '<strong>'.$contador.'.- </strong>'.$list[1].'  <strong>(Pts. '.$list[2].'):</strong>' ?></label>
        <div class="col-lg-2">
            <label class="radio-inline">
            <input type="radio" name="<?php echo $list[0] ?>" id="<?php echo $list[0]; ?>" value="<?php echo $list[2]; ?>"></label>
            <label class="radio-inline">
            <input type="radio" name="<?php echo $list[0]; ?>" id="<?php echo $list[0]; ?>" value="0">No</label>
        </div>
        <div class="col-lg-4">
            <!--<label class="col-sm-2 control-label">Comentario</label>-->
<!--                        <input class="col-sm-10" type="text" name=""  />-->
            <textarea class="form-control" rows="1" name="comentario<?php echo $list[0]; ?>" id="comentario<?php echo $list[0]; ?>"></textarea>
 
        </div>
    </div>
    </div>
<?php
    $contador++;
    }
}
mysqli_free_result($query);
?>
Donde se genera con el iditem, valor, comentario.

Esto quiero almacenarlo en la variable y enviarlo mediante post.




El Script:
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
<script>
	$(document).ready(function(){
		function obtenerDatos(){
				var items =""; //Aquí quiero almacenar los valores de cada pregunta que se genera en la página anterior mediante una consulta.
//En esta variable items quiero que almacene el array con todos los datos (iditem,valor,comentario).
				//No sé como almacenar 
 
 
				datos = [{name:"accion",value:"enviar"},{name:"idseleccionadou", value:$("#idseleccionadou").val()},{name:"idsede", value:$("#idsede").val()},{name: "idprograma", value:$("#idprograma").val()},{name: "idciclo", value:$("#idciclo").val()},{name: "idbloque", value:$("#idbloque").val()},{name: "idturno", value:$("#idturno").val()},{name: "codigocurso", value:$("#codigocurso").val()},{name: "iniciomonitoreo", value:$("#iniciomonitoreo").val()},{name:"items", value:items}];
				return datos;
		}
//{name:"items", value:items} aquí me quede, porque no sé como hacer para que todos las preguntas con su respectiva respuesta y comentario se almacene en la variable.
 
		$("#guardarcalificacion").click(function(){
			datos = obtenerDatos();
			$.ajax({
				url:'ejecutar/agregarmonitoreo.php',
				type:'post',
				dataType:'json',
				data:datos
			}).done(function(respuesta){
				if(respuesta.estado == true)
					alert("La información se guardó correctamente");
				else
					alert("Ocurrió un error al guardar la información, por favor vuelve a intentarlo");
			});
			return false;
		});
	});
	</script>

Aquí va el código para poder guardar:
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
<?php
include("../../config/config.php");
date_default_timezone_set('America/Lima');
global $conn;
 
	if( isset($_POST['accion']) ){
		$accion = $_POST['accion'];
		$idseleccionadou = $_POST['idseleccionadou'];
		$idsede = $_POST['idsede'];
		$idprograma = $_POST['idprograma'];
		$idciclo = $_POST['idciclo'];
		$idbloque = $_POST['idbloque'];
		$idturno = $_POST['idturno'];
		$codigocurso = $_POST['codigocurso'];
		$iniciomonitoreo = $_POST['iniciomonitoreo'];
//Hasta aquí puedo capturar,
//Lo siguiente es dificil porque no sé como capturar los datos del formulario en la variable.
		$items = $_POST['items'];
 
 
 
		$conn->autocommit(FALSE);
		$consulta = "INSERT INTO `monitoreos` (`idseleccionado`, `idsede`, `idprograma`, `idciclo`, `idbloque`, `idturno`, `codigocurso`, `iniciomonitoreo`, `finmonitoreo`,  `puntaje`, `estado`)
		VALUES('$idseleccionado', '$idsede', '$idprograma', '$idciclo', '$idbloque', '$idturno', '$codigocurso', '$iniciomonitoreo', NOW(),'$puntaje','1');";
 
		if( $conn->query($consulta) ){
			$idmonitoreos = $conexion->insert_id;
			$items = trim($items,',');
			$items = explode(',', $items);
			foreach ($items as $item) {
				$consulta = "INSERT INTO `detallemonitoreo` (`idmonitoreos`, `iditems`, `calificacion`) VALUE($idmonitoreos,$iditems,$calificacion)";
				if( $conn->query($consulta) == FALSE ){
					$respuesta->estado = FALSE;
					$conn->rollback();
					echo json_encode($respuesta);
					die();
				}
			}
		}
		else{
			$respuesta->estado = FALSE;
			$conn->rollback();
			echo json_encode($respuesta);
			die();
		}
		$respuesta->estado = TRUE;
		$conn->commit();
		echo json_encode($respuesta);
	}
?>

Por favor.
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 facundo

almacenar datos en un array de todos los radiobutton seleccionados e insertar

Publicado por facundo (185 intervenciones) el 09/09/2017 17:32:08
Bueno, yo no se ni json ni ajax ni javascript, pero lo unico que te puedo decir es que no subas todo el chorizo del codigo completo, sino que te preguntes "que necesito hacer para que funcione?" y entonces preguntar en el foro "como hacer para hacer tal cosa.."
Es un codigo bastante largo y dificilmente alguien se tome el trabajo de analizarlo todo y resolverte el problema, por eso te digo, fijate que necesitas hacer exactamente y preguntalo sin poner todo el codigo entero.


Y te pregunto... Cuanto tiempo estuviste intentando hacerlo y buscando info sobre como hacerlo?
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