PHP - Grabar el id de un select

   
Vista:

Grabar el id de un select

Publicado por Aleco (6 intervenciones) el 07/04/2017 17:29:08
Buen día, estoy realizando un programa en donde asocio tablas de mi BD a unos selects.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
	require_once("clases/personal.php");
        $p=new Personal();
	$personal_datos=$p->getDatos();
?>
 
<!DOCTYPE html>
---
---
 
<p>
	<label for name="nombres">Nombres y apellidos:</label>
	<select name="selectarea">
	  <option value="">Seleccione ...</option>
		  <?php
		  	foreach($personal_datos as $personal_dato)
                     {
                  ?>
          <option value=""><?php echo $personal_dato["nombres"];?></option>
	    <?php
	 	     }
	  ?>
	</select>
  </p>
Me muestra los nombres de la tabla personal correctamente, la idea es como grabar el id de cada nombre. Ya que en la tabla donde debe registrarse, solo debo guardar el id.
En el value coloqué este codigo:
<option value="<?php echo $personal_dato["id"];?>">
Pero cuando voy seleccionando cada nombre, no se actualiza su id, me muestra solo el ultimo.
Gracias de antemano.
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

Grabar el id de un select

Publicado por Brayan (76 intervenciones) el 07/04/2017 18:02:27
En el archivo tienes mal definido la variable. le pusiste dato['id']; y al colocarlo la primera vez en las siguiente no te va a funcionar, para cada foreach debes o realizar una nueva consulta, o realizarlo con la variable correspondiente ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p>
	<label for name="registro">Area:</label>
	<select name="selectarea">
	  <option value="">Seleccione ...</option>
	  <?php
		foreach( $areas_datos as $area_dato)
        {
        ?>
			<!--<option value=""><?php echo $dato["id"];?></option>-->
// aqui deberia ir $area_dato["id"]; porq sino mas adelante esta variable dejara su valor nulo
			<option value=""><?php echo $area_dato["area"];?></option>
	    <?php
	    }
	  ?>
	</select>
</p>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p>
	<label for name="nombres">Nombres y apellidos:</label>
	<select name="selectarea">
	  <option value="">Seleccione ...</option>
	  <?php
		foreach($personal_datos as $personal_dato)
        {
        ?>
			<!--<option value=""><?php echo $dato["id"];?></option>-->
// lo ves? ya aqui este dato por tenerlo arriba pierde sus valores porque ya fue recorrido debes sustiturilo por  $personal_dato["id"] si es que hay un campo id en esa consulta debes corregir eso.
			<option value="<?php echo $personal_dato["id"];?>"><?php echo $personal_dato["nombres"];?></option>
	    <?php
	    }
	  ?>
	</select>
</p>

Te dejo los comentarios con // debajo de los errores que pude percibir
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

Grabar el id de un select

Publicado por Aleco (6 intervenciones) el 07/04/2017 18:25:47
Buenos días, gracias por la respuesta. Si, quedó el codigo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p>
	<label for name="nombres">Nombres y apellidos:</label>
	<select name="selectarea">
	  <option value="">Seleccione ...</option>
	  <?php
		foreach($personal_datos as $personal_dato)
        {
        ?>
			<option value="<?php echo $personal_dato["id"];?>"><?php echo $personal_dato["nombres"];?></option>
	    <?php
	    }
	  ?>
	</select>
</p>
 
<?php echo $personal_dato["id"];?>
Agregue este codigo para ver si se actualiza el id, conforme elijo cada nombre pero solo me muestra el id del ultimo registro.

Si, por cada foreach hay una nueva consulta a la respectiva tabla.
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

Grabar el id de un select

Publicado por Brayan (76 intervenciones) el 07/04/2017 18:33:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p>
<label for name="nombres">Nombres y apellidos:</label>
<select name="selectarea">
<option value="">Seleccione ...</option>
<?php
foreach($personal_datos as $personal_dato)
{
?>
<option value="<?php echo $personal_dato["id"];?>"><?php echo $personal_dato["nombres"];?></option>
<?php
}
?>
</select>
</p>
 
<?php echo $personal_dato["id"];?>

Si lo colocas asi obviamente estara mal porque esta fuera del ciclo debes colocarlo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<p>
<label for name="nombres">Nombres y apellidos:</label>
<select name="selectarea">
<option value="">Seleccione ...</option>
<?php
foreach($personal_datos as $personal_dato)
{
?>
<option value="<?php echo $personal_dato["id"];?>"><?php echo $personal_dato["nombres"];?></option>
<?php
<?php echo $personal_dato["id"];?>
}
?>
</select>
</p>
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

Grabar el id de un select

Publicado por Aleco (6 intervenciones) el 07/04/2017 19:39:16
Ok, al final he creado otro archivo para corroborar si los datos que recibe via POST estan correctos.
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
<?php
	$registro = $_POST['registro'];
	$fecha = $_POST['fecha'];
	$hora = $_POST['hora'];
	$selectarea = $_POST['selectarea'];
	$selectnombres = $_POST['selectnombres'];
	$selectdoc = $_POST['selectdoc'];
	$doc = $_POST['doc'];
	$folio = $_POST['folio'];
	$asunto = $_POST['asunto'];
 
	echo $registro;
	echo "<br>";
	echo $fecha;
	echo "<br>";
	echo $hora;
	echo "<br>";
	echo $selectarea;
	echo "<br>";
	echo $selectnombres;
	echo "<br>";
	echo $selectdoc;
	echo "<br>";
	echo $doc;
	echo "<br>";
	echo $folio;
	echo "<br>";
	echo $asunto;
	echo "<br>";
?>
Solo me faltaría grabar estas variables en la tabla.

Gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de yoclens

Grabar el id de un select

Publicado por yoclens (1 intervención) el 08/04/2017 20:38:20
intenta asi, recuerda cambiar los varoles por los que necesitas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="input-field col s12 m4">
<select select name="iddepartamentos" id="iddepartamentos"
title="Disculpa, debe seleccionar el departamento!" required/>
<option value=""  disabled selected>Asignar Departamento:</option>
<?php
$result = mysql_query("SELECT * FROM departamentos");
while ($row=mysql_fetch_array($result)) {
?>
<option value="<?php echo $row['departamentos'] ;?>">
<?php echo $row['departamentos'] ;?></option>
<?php
}
mysql_close($link);
?>
</select>
</div>

adaptalo a tus necesidades
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