entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

COMO SELECCIONAR UN REGISTRO DE UNA TABLA CON UN CHECKBOX Y ENVIARLO A OTRA PAGINA

Hola amigos tengo un problema alguien podria asesorarme les explico tengo una tabla donde los registros bienen de una Base de Datos haora lo que necesito es que con un checkbox seleccione el registro y me lo muestre en otra pagina ya sea usando javascript al seleccionar el checkbox digamos el registro es el nombre de un usuario y necesito selecionarlo alguien tiene una sugerencia o idea positiva para el apoyo de esta duda amigos les agradeseria con un ejemplo ya que no encuentro nada concreto en la web y solo me confunden?

<FORM ACTION="">

<INPUT TYPE=CHECKBOX NAME=""><?php $registro["nombre"] ?><P>

</form>

2 Respuestas

3votos

Leonardo-Tadei Puntos227320

Hola @Alan,

si la idea es mostrar una serie de datos de los que se puede selecinar solo uno, el cotrol HTML adecuado es el RADIO, ya que se excluyen mutuamente según se clickea. Este sería un ejemplo de cómo funciona y se toman los valores. Por simplicidad, cambié la query que devuelve los datos por datos estáticos en un vector:

<?php
// array con datos como ejemplo: los datos se toman de una tabla de base de datos
$data = array(1=>'Pedro', 2=>'José', 4=>'Leonardo',5=>'Juana',6=>'Valeria');

// Muestra el dato seleccionado
if(isset($_POST['usuario'])){
    $id = intval($_POST['usuario']);
    // Busca el valor: esto debe ser reemplazado por una query
    $valor = $data[$id];
    print("Se seleccionó el usaurio $valor ($id)");
}

// Muestra los datos en un formulario
?>
<hr />
<form action="" method="post" id="ff">
<?php
    foreach($data as $k => $v){
?>
    <label> <!-- el label es para que tome click sobre la palabra, además de sobre el control -->
        <input type="radio" name="usuario" value="<?=$k?>" onclick="document.getElementById('ff').submit()" /> <?=$v?> <br />
    </label>
<?php   
    } // foreach
?>
</form>

Ahora bien, si lo que querés es poder enviar información de varios datos seleccionados, como suelen ser las interfaces de borrado múltiple,etc, el componente HTML a tal efecto es el checkbox. La idea de un checkbos es poder seleccionar varios, por lo que agregué un botón de "enviar" para que puedan seleccionarse o deseleccionarse todos los que se quieran:

<?php
// array con datos como ejemplo: los datos se toman de una tabla de base de datos
$data = array(1=>'Pedro', 2=>'José', 4=>'Leonardo',5=>'Juana',6=>'Valeria');

// Muestra el dato seleccionado
if(isset($_POST['Bok'])){
    // usuario[] es un vector HTML
    foreach($_POST['usuario'] as $id){
        // Busca el valor: esto debe ser reemplazado por una query
        $valor = $data[$id];
        print("Se seleccionó el usaurio $valor ($id)<br />");
    }
}

// Muestra los datos en un formulario
?>
<hr />
<form action="" method="post" id="ff">
<?php
    foreach($data as $k => $v){
?>
    <label> <!-- el label es para que tome click sobre la palabra, además de sobre el control -->
        <input type="checkbox" name="usuario[]" value="<?=$k?>" /> <?=$v?> <br />
    </label>
<?php   
    } // foreach
?>
    <input type="submit" value="Enviar" name="Bok" />
</form>

En este caso estoy usando un vector HTML, que es lo que permite enviar varios datos bajo un mismo nombre. Como lo que se recibe es un vector, hay que leerlo en un bucle.

Espero te sirvan como orientación para lo que querés hacer.

Saludos cordiales!

2votos

Alan comentado

Oooo!! Muchas gracias Leonardo me ayudo mucho tu ejemplo encerio duda resuelta..

Saludos cordiales!

4votos

white Puntos75880

Hola @Alan, tienes que enviar un identificador o un dato de referencia para "la otra pagina"

entonces agrega a tu checkbox un valor:

<input type="checkbox" name="reg_id" value="<?php $registro["id"] ?>">

aca definimos el campo con nombre reg_id y de valor un identificador de tu registro, suponiendo que tienes una columna llamada id.

el nombre del campo sera necesario para enviarlo via GET o POST.

via GET:

<form method="GET" action="otra_pagina.php">
    <input type="checkbox" name="reg_id" value="<?php $registro["id"] ?>">
    <?php $registro["nombre"] ?>
    <input type="submit" value="enviar">
</form>

en el fichero otra_pagina.php obtienes el valor desde la url "reg_id", que es nuestra referencia con la cual podras hacer una consulta a la base de datos para obtener ese registro.

otra_pagina.php:

<?php

    $identificador = (int) $_GET['reg_id'];

    // aca hacemos una consulta a la base de datos
    // SELECT FROM registros WHERE id = $idenficador

2votos

Alan comentado

Gracias por tu ejemplo white
SALUDOS!!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta