pasar datos de combo a text

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • pasar datos de combo a text

    buen dia amigos, les paso el codigo que uso para cargar el combo con una base de datos. Pero tengo un problema de podes sacar el valor seleccionado por el usuario y enviarlo a un text.

    Gracias


    <?php

    session_start(); //esta linea tiene que ir antes de cualquier cosa, incluso de espacios
    ob_start();

    echo $_SESSION['resultado'];

    $server = 'localhost'; //servidor
    $username = 'root'; //usuario de la base de datos
    $password = ''; //password del usuario de la base de datos
    $database = 'basedatos'; //nombre de la base de datos


    $conexion = @new mysqli($server, $username, $password, $database);

    if ($conexion->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo
    {
    die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error
    }

    echo "Seleccione el periodo: ";

    $sql="SELECT * from periodos order by periodo DESC";
    $result = $conexion->query($sql); //usamos la conexion para dar un resultado a la variable

    if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el codigo
    {
    $combobit="";
    while ($row = $result->fetch_array(MYSQLI_ASSOC))
    {
    $combobit .=" <option value='".$row['idperiodos']."'>".$row['periodo']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
    }
    }
    else
    {
    echo "No hubo resultados";
    }
    $conexion->close(); //cerramos la conexión

    ?>
    <html>
    <head>
    <title>Muestro valores en el combo</title>
    <link href="contactos.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <select name="estado">
    <?php echo $combobit; ?>
    </select>
    </body>
    </html>

  • #2
    Re: pasar datos de combo a text

    Hola afede19, esperaba que un experto en PHP pudiera responderte, pero en vista que no hay respuesta me voy a animar a responder yo, aunque te aclaro que soy principiante en este lenguaje (todavía no llegué al capítulo de BD).

    Te cuento lo que aprendí hasta ahora. HTML es un lenguaje que te permite dar formato al texto, color, tamaño de fuente, etc., como máximo se podría pretender dibujar una tabla, pero no más que eso. Por tal motivo, a la hora de manejar eventos, HTML no puede hacerlo y necesita de otros lenguajes, por ejemplo javascript y php script.

    Cuando la tarea se debe realizar del lado del servidor (donde se encuentra alojada la página HTML) se debe usar PHP script, como bien lo has hecho; en cuanto a seguridad habría que ver si está bien de esa forma.

    Pero si la tarea se realiza del lado del cliente (por ejemplo en este caso para manejar el evento click del combo) se debe usar java script.

    Entonces lo que está faltando al código es java script para manejar el evento click del combo, que no se puede hacer mediante HTML.

    Prueba lo siguiente, a ver si funciona:
    Código:
    <html>
        <head>
            <title>Muestro valores en el combo</title>
            <link href="contactos.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <select name="estado" id="cbo_Estado" onClick="var cbo=document.getElementById('cbo_Estado');document.getElementById('txt_Estado').value=cbo.options[cbo.selectedIndex].value;">
                <?php echo $combobit; ?>
            </select>
        </body>
    </html>
    Un detalle a tener en cuenta aquí es que para hacer referencia a un ID dentro de un código javascript encerrado entre comillas dobles ("), debemos usar comillas simples(').

    Otra alternativa es realizar una función, pero en ese caso me parece que debe ir en el HEAD del HTML:
    Código:
    <html>
        <head>
            <script language="javascript">
                function comboGetItem(cbo){
                    var value = cbo.options[cbo.selectedIndex].value;
                    document.getElementById("txt_Estado").value=value;
                }
            </script>
            <title>Muestro valores en el combo</title>
            <link href="contactos.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <select name="estado" id="cbo_Estado" onClick="comboGetItem(cbo_Estado)">
                <?php echo $combobit; ?>
            </select>
        </body>
    </html>
    También me parece que podés poner
    Código:
    onClick="comboGetItem(this)"
    Ten en cuenta que txt_Estado es el ID del TextBox donde querés poner el valor seleccionado.

    Espero sea de ayuda.
    Saludos.

    Comentario

    Trabajando...
    X