Nueva pregunta

Pregunta:

Fecha: 10-07-2017 07:55:35 (En Español)

¿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.
Etiquetas: Empezar a programar - MySQL - PHP - Pregunta 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
 
frjcbbae garagebible.com