Pregunta:
Fecha: 10-07-2017 07:55:35
(En Español)
Tengo un select dinámico con facultades y carreras de una base de datos, ese resultado del select lo quiero guardar en otra base de datos.
El problema esta que cuando registro para guardarlo en la base de datos se me registra el valor id y no el texto, por ejemplo:
Lo quiero es q se registre en la base de datos MySQL el nombre de la Facultad y no el ID.
Votos: 0 - Respuestas: 8 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo guardar en una base de datos MySQL el texto de un select dinámico y no el valor value id?[No resuelta]
Buenos dias, espero que me ayuden y que me entiendan lo expresado.Tengo un select dinámico con facultades y carreras de una base de datos, ese resultado del select lo quiero guardar en otra base de datos.
El problema esta que cuando registro para guardarlo en la base de datos se me registra el valor id y no el texto, por ejemplo:
<option value=1>Facultad de economia</option>
Lo quiero es q se registre en la base de datos MySQL el nombre de la Facultad y no el ID.
Votos: 0 - Respuestas: 8 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 10-07-2017 09:31:29 En el SELECT dinámico que mecionas lo que se envía por metodo post o get es lo que tienes en value y tu tienes de la siguiente forma:
<option value=1>Facultad de economia</option>
Entonces esta enviando el numero 1 por eso se guarda ese numero, si lo que quieres es el nombre de la facultad entonces deberia ser de la siguiente forma
<option value="Facultad de economia">Facultad de economia</option>
Espero te ayude la respuesta Votos: 1 - Link respuesta -
Fecha: 10-07-2017 13:19:43 Si no quieres cambiar el id en el option entonces, al recibir los datos, puedes hacer una consulta a la misma base de datos y obtener el nombre de la facultad a partir del id. Votos: 1 - Link respuesta
-
Fecha: 10-07-2017 15:52:01 por otro lado a lo antes expuesto por los amigos, podrias realizar el envio con ajax y capturar el texto del select con jquery
//Esto toma el texto y no el value de la opcion seleccionada var valor = $("#select option:selected").text();Votos: 2 - Link respuesta -
Fecha: 10-07-2017 15:55:14 Gracias por sus respuestas.
Pero no le puedo cambiarle el id. porque esta en la base de datos y con respecto la consulta directa a la db no porque lo que busco es guardarla en otra base de datos.
El select donde esta la facultad y las carreras lo introduje en otro formulario donde se van registrar en una db, los datos personales de un egresado de la Universidad. me disculpan si no me se explicar lo que quiero que ayuden.
El select lo hice de otro proyecto con html, php, jquery
Con esta funcion puedo hacer la consulta que recomendo Ernesto, pero en el html y quiero es que se registre en la db y no puedo porque se me registra es el ID y quiero se me registre es el nombre.
$(document).ready(function(){ $.ajax({ type: 'POST', url: 'php/listas_facultad.php' }) .done(function(listas_fac){ $('#lista_facultades').html(listas_fac) }) .fail(function(){ alert('Hubo un errror al cargar las listas_fac') }) $('#lista_facultades').on('change', function(){ var id = $('#lista_facultades').val() $.ajax({ type: 'POST', url: 'php/cargar_carreras.php', data: {'id': id} }) .done(function(listas_fac){ $('#carreras').html(listas_fac) }) .fail(function(){ alert('Hubo un errror al cargar las Carreras') }) }) $('#enviar').on('click', function(){ var resultado = 'Lista de Facultades: ' + $('#lista_facultades option:selected').text() + ' Carreras: ' + $('#carreras option:selected').text() $('#resultado1').html(resultado) }) })
Votos: 0 - Link respuesta -
Fecha: 10-07-2017 16:20:32 lo que te quisieron decir, es que en el código que recibe la información para su inserción, realices una función que te regrese el nombre asociado a la id de la facultad:
function buscarFacultad($X){ $a = $db->query("SELECT * FROM tabla WHERE id = '$X'"); $t = mysqli_num_rows($a); $row = $a->fetch_assoc(); return $row['facultad']; } $facultad = buscarFacultad($_POST['facultad']);//Aqui se recibe la id de la facultad y lo pasamos a la funcion que busca el nombre de dicha facultad //resto del codigo de validacion e inserción
de esa manera recibes la id pero insertas el nombre de la facultad, ya que la función se en carga de buscarlo por la id recibida. Votos: 4 - Link respuesta -
Fecha: 13-07-2017 04:40:42 Buen día, le idea es que en el query obtengas el id y el nombre de la siguiente forma (lo pongo en pdo)
$sqlFacultades = "SELECT id ,Nombre FROM Facultades; $queryFacultades = $pdo->query($sqlFacultades); $resFacultades = $queryFcultades->fetchAll();
Despues creas tu elemente SELECT en la vista y en el option pones los valores usando atributo id y atributo data que es lo que vas a enviar
<?php foreach($resFacultades AS $facultades){ ?> <SELECT name="facultades" id="facultades"> <option id="<?= $facultades['id']" data-nombre="<?=$facultades['Nombre'] ?>"><?=$facultades['Nombre'] ?></option> </SELECT> <?php } ?>
ahora con javascript obtienes los valores y puedes manipularlos o enviarlos
var id = $('#facultades').val(); // aqui obtiene el valor del atributo id var nombreFacultad = $('#lfacultades').data('nombre'); // aqui obtiene el valor del atributo data //alert para ver valores alert('el id es '+id+' y el nombre es '+nombreFacultad);
Espero ésto teayude Votos: 1 - Link respuesta -
Fecha: 18-07-2017 06:47:54 gracias Ruben, el atributo id y el atributo data los puedo poner en el .php
este es mi codigo
<?php require_once 'conexion.php'; function getListasFac(){ $mysqli = getConn(); $query = 'SELECT * FROM `facultad`'; $result = $mysqli->query($query); $listas = '<option value="0">Elige una facultad</option>'; while($row = $result->fetch_array(MYSQLI_ASSOC)){ $listas .= "<option value='$row[id_facultad]'>$row[facultad_egre]</option>"; } return $listas; } echo getListasFac();Votos: 0 - Link respuesta -
Fecha: 15-07-2018 08:36:51 Buenas, señor Carlos quintero me puede facilitar su correo electrónico para hacerle una consulta personal con respecto a este que no he podido cambiar proyecto, se lo voy agradecer mucho Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
