Cómo consigo que 2 variables con la misma ID se guarden en una Base de datos MYSQLI?
Publicado por Juan (32 intervenciones) el 13/03/2019 15:02:17
Necesito de su ayuda, tengo un formulario donde inscribo los datos de un curso: nombre, fecha, cantidad de horas, relator…), en el cual me solicitaron la opción de agregar más de un relator al curso (este actualmente es un listbox)
Enlace donde tengo una prueba del sistema (Usuario: admin, contraseña: admin):
http://www.ceotalca.cl/prueba/cursos/creacion_curso.php
Esto lo envia a un php donde guardo los datos en la BD:
El problema esta en guardar las variables de id_relator, ya que estos son listbox con un script en javascript el cual agrega mas listbox a medida que el usuario necesite, pero al querer enviarlos al siguiente php me aparece el siguiente error:
Notice: Undefined index: id_relatores in C:\Program Files (x86)\EasyPHP5.3.0\www\capacitacion\cursos\creacion_curso_bd.php on line 69
No se cual puede ser el problema, si alguien me puede guiar muchísimas gracias.
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<div class="col-md-6 animate-box">
<h3>Complete los datos solicitados</h3>
<form action="creacion_curso_bd.php" method="post" enctype="multipart/form-data" name="form1" target="_self" id="form1">
<div class="row form-group">
<!-- nombre curso -->
<div class="col-md-12">
<input type="text" name="nombre_curso" id="nombre_curso" class="form-control" placeholder="Nombre del curso">
</div>
</div>
<!-- fin nombre curso -->
<input type="hidden" id="dir" name="ip" value="<?php echo $ip_usuario; ?>"> <!-- Podría ser <?=$ip?>, como fomra abreviada -->
<!-- Fecha del curso -->
<div class="row form-group">
<div class="col-md-12">
<!-- <input class="form-control required" type="text" name="check_in" id="check_in" placeholder="Fecha de realización"> -->
<input class="form-control required" type="date" name="fecha_curso" id="fecha_curso" placeholder="Fecha de realización">
</div>
</div>
<!-- fin Fecha del curso -->
<div class="row form-group">
<div class="col-md-12">
<input type="text" name="numero_horas" id="numero_horas" class="form-control" placeholder="Cantidad de horas" onkeypress="return valideKey(event);" >
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="text" name="sigper" id="sigper" class="form-control" placeholder="Codigo SIGPER">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="text" name="vacantes" id="vacantes" class="form-control" placeholder="Cantidad de vacantes" onkeypress="return valideKey(event);" >
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="text" name="ubicacion" id="ubicacion" class="form-control" placeholder="Ubicación del curso">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<textarea name="descripcion" id="descripcion" cols="30" rows="20" class="form-control" placeholder="Descripción del curso"></textarea>
</div>
</div>
<!-- <div class="row form-group">
<div class="col-md-12">
<label for="subject">Subject</label>
<input type="text" name="curso" id="curso" class="form-control" placeholder="Curso">
</div>
</div>-->
<!-- <div class="row form-group">
<div class="col-md-12">
<select name="curso" id="curso" class="form-control" >
<option value=''>Elija un curso</option>
<?php
$query = $mysqli -> query ("SELECT * FROM cursos");
while ($valores = mysqli_fetch_array($query)) {
echo '<option value="'.$valores[id_curso].'">'.$valores[nombre_curso].'</option>';
}
?>
</select>
</div>
</div> -->
<!-- ambito -->
<div class="row form-group">
<div class="col-md-12">
<select name="ambito" id="ambito" class="form-control" style="height: 50px" >
<option value=''>Elija un ambito</option>
<?php
$query = $mysqli -> query ("SELECT * FROM ambito");
while ($valores = mysqli_fetch_array($query)) {
echo '<option value="'.$valores[id_ambito].'">'.$valores[ambito].'</option>';
}
?>
</select>
</div>
</div>
<!-- fin ambito -->
<!-- Relatores
<div class="row form-group">
<div class="col-md-12">
<select name="id_relatores" id="id_relatores" class="form-control" style="height: 50px" >
<option value=''>Elija un relator</option>
<?php
$query = $mysqli -> query ("SELECT * FROM relatores");
while ($valores = mysqli_fetch_array($query)) {
echo '<option value="'.$valores[id_relator].'">'.$valores[nombre_relator].'</option>';
}
?>
</select>
</div>
</div>
prueba dinamica relatores -->
<div class="row form-group" id="dynamic_form">
<div class="col-md-12">
<select name="p_name" id="p_name" class="form-control" style="height: 50px" >
<option value=''>Elija un relator</option>
<?php
$query = $mysqli -> query ("SELECT id_relator, nombre_relator FROM relatores");
while ($valores = mysqli_fetch_array($query)) {
echo '<option value="'.$valores[id_relator].'">'.$valores[nombre_relator].'</option>';
}
?>
</select>
<div class="button-group">
<a href="javascript:void(0)" class="btn btn-primary; color: #1f27ba" id="plus5">Añadir mas relatores</a>
<a href="javascript:void(0)" class="btn btn-danger" id="minus5">Remover Relator</a>
</div>
<script>
$(document).ready(function() {
var dynamic_form = $("#dynamic_form").dynamicForm("#dynamic_form","#plus5", "#minus5", {
limit:10,
formPrefix : "dynamic_form",
normalizeFullForm : false
});
dynamic_form.inject([{p_name: 'Hemant',quantity: '123',remarks: 'testing remark'},{p_name: 'Harshal',quantity: '123',remarks: 'testing remark'}]);
$("#dynamic_form #minus5").on('click', function(){
var initDynamicId = $(this).closest('#dynamic_form').parent().find("[id^='dynamic_form']").length;
if (initDynamicId === 2) {
$(this).closest('#dynamic_form').next().find('#minus5').hide();
}
$(this).closest('#dynamic_form').remove();
});
$('form').on('submit', function(event){
var values = {};
$.each($('form').serializeArray(), function(i, field) {
values[field.name] = field.value;
});
console.log(values)
event.preventDefault();
})
});
</script>
<!-- fin prueba dinamica relatores -->
</div> </div>
<br>
<div class="row form-group">
<div class="col-md-12">
<a href="relatores_embed.php?keepThis=true&TB_iframe=true&height=280&width=680" class="thickbox"> <h3>Si quiere agregar otro relator al listado, haga click aquí</h3> </a>
<input type="submit" name="enviar" onclick="valida_envia()" value="Enviar inscripción" class="btn btn-primary" id="enviar">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
Enlace donde tengo una prueba del sistema (Usuario: admin, contraseña: admin):
http://www.ceotalca.cl/prueba/cursos/creacion_curso.php
Esto lo envia a un php donde guardo los datos en la BD:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$curso_nom = mysqli_query($con, "SELECT `nombre_curso` FROM `cursos` WHERE `nombre_curso` = '$nombre_curso'");
echo $curso_nom;
if ($curso_nom==null){
$sql = ("INSERT INTO `capacitaciones`.`cursos` (`nombre_curso`, `fechas_curso`, `horas_curso`, `id_ambito`, `codigo_sigper`, `vacantes`, `ubicacion`, `descripcion`, `id_relator`, `disponible`) VALUES ('$nombre_curso', '$fecha_curso', '$horas_curso', '$id_ambito', '$codigo_sigper', '$vacantes', '$ubicacion', '$descripcion', '$id_relatores', 'si')"); //Se insertan los datos a la base de datos y el usuario ya fue registrado con exito.
/* $sql2 = ("INSERT INTO `capacitaciones`.`cursos` (`nombre_curso`, `fechas_curso`, `horas_curso`, `id_ambito`, `codigo_sigper`, `vacantes`, `ubicacion`, `id_relator`, `disponible`) VALUES ('$nombre_curso', '$fecha_curso', '$horas_curso', '$id_ambito', '$codigo_sigper', '$vacantes', '$ubicacion', 'dsffs', 'si');"); */
if (mysqli_query($con, $sql)) {
scriptAlertGo('!El curso fue inscrito correctamente!','#');
}else{
scriptAlert('!Ha ocurrido un problema en la inscripción, por favor intente nuevamente!','#');
}
}else{
scriptAlertGo('El nombre del curso ya esta registrado en la base de datos','#');
}
Ejecutar
El problema esta en guardar las variables de id_relator, ya que estos son listbox con un script en javascript el cual agrega mas listbox a medida que el usuario necesite, pero al querer enviarlos al siguiente php me aparece el siguiente error:
Notice: Undefined index: id_relatores in C:\Program Files (x86)\EasyPHP5.3.0\www\capacitacion\cursos\creacion_curso_bd.php on line 69
No se cual puede ser el problema, si alguien me puede guiar muchísimas gracias.
Valora esta pregunta
0