Foros del Web » Programando para Internet » PHP »

Insertar una dato PK de un select

Estas en el tema de Insertar una dato PK de un select en el foro de PHP en Foros del Web. Hola a todos los de la comunidad :D espero que estén muy bien. He tenido un problema ya que necesito extraer un dato de un ...
  #1 (permalink)  
Antiguo 24/09/2015, 21:10
 
Fecha de Ingreso: septiembre-2015
Mensajes: 1
Antigüedad: 8 años, 6 meses
Puntos: 0
Exclamación Insertar una dato PK de un select

Hola a todos los de la comunidad :D espero que estén muy bien.

He tenido un problema ya que necesito extraer un dato de un select (que es un combobox de html5) con una lista de elementos y que principalmente este select muestra un dato guardado en la base de datos a partir de una primary key por la que es reconocido ese elemento, lo que me interesa es que al haber elegido un elemento de ese select, pueda extraer o llevar como input la primary key de este elemento, ya que estoy utilizando un "fetch array" para poder obtener un dato pero no sé cómo obtener la primary key de este elemento elegido con el select.

He aquí el código dónde tengo el select:
> En primer lugar aquí hago el select, y básicamente muestra y obtiene los datos que está entre la etiqueta "label", lo que necesito es que se guarde al seleccionar el contenido de "option" es el dato que aparece en "value" el que me importa obtener para ser guardado y enviado a la base de datos y no consigo hacerlo :(

Código PHP:
      <div class="col-lg-10">
        <select name="selectNomAsignatura" class="form-control" id="selectNomAsignatura">
         <?php while ($lista mysql_fetch_array($query)) {?>
          <option name="selectNomAsignatura" value="<?php echo $lista ['id_asignatura']?>"><?php echo $lista ['nombre_asignatura']?></option>
          <?php }?>
        </select>
      </div>
> Más abajo del código de arriba tengo la captura de datos para ser enviadas a la base de datos, el problema es que en el select mostrado anteriormente no necesito lo que muestra, sino el id_asignatura que sale en el campo "value" de ese select option:

Código PHP:
<?php 
    
if ($_POST) {

  
$b=$_POST['selectNomAsignatura'];

  
mysql_query("insert into unidad(id_asignatura)values('$b')")or die(mysql_error());
$ref="home.php"
 echo 
"<SCRIPT>window.location='$ref';</SCRIPT>"

}
?>
Espero que me puedan entender y ayudar, es el único detalle que me falta que no lo he encontrado en la web y estoy empezando hace poco con php :/

Gracias de antemano n.n
  #2 (permalink)  
Antiguo 27/09/2015, 14:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Insertar una dato PK de un select

<saludo>
Pues creo que como lo tienes planteado debería funcionar.
Ahora, pregunto algo, sí inspeccionas ese elemento por firebug,
o sí ves el código fuente de la página y miras el código del select,
1. los value tienen valor? o están en blanco?
2. Cuando se hace el insert, da algún error?
3.Si imprimes el insert, sale es el nombre de la asignatura, y no el id?
4.Muestra en todos los casos 'selectNomAsignatura'? Si es este caso, puede ser porque tienes un 'name' en cada 'option',
y creo que no es necesario, en cuyo caso puede ir solo el value.

Por ej, este es un código simple que al recibir el dato muestra 1, 2 o 3

Código PHP:
<form method='post'>
<select name='valor'>
<option value='1'>uno</option>
<option value='2'>dos</option>
<option value='3'>tres</option>
</select>
<input type=submit>
</form>
<?php
echo 'el valor recibido del select es: '.$_POST['valor'];
?>
Y si ves, es muy similar al que se tiene en el código propuesto inicialmente,
por ende debe funcionar sin problema.

</saludo>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: arrays, mysql, option, post, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:55.