Foros del Web » Programando para Internet » PHP »

mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Estas en el tema de mostrar registros con radio button,seleccionar 1 y pasarlo a otra form. en el foro de PHP en Foros del Web. Buenos dias con todos, tengo la siguiente duda, tengo un formulario donde muestro todos registros de una tabla con dos campos codigo y nombre asi: ...
  #1 (permalink)  
Antiguo 12/07/2011, 10:19
 
Fecha de Ingreso: julio-2011
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Buenos dias con todos, tengo la siguiente duda, tengo un formulario donde muestro todos registros de una tabla con dos campos codigo y nombre asi:

Codigo Nombre
10562 ADMINISTRACION INMOBILIARIA S.A.C.
10765 ADMINISTRACION DE EMPRESAS S.A.
11788 ADMINISTRACION DE INMUEBLES COLUMBUS E.I.R.L.
10348 ADMINISTRADORA PANAMERICANA S.A.C.
10977 ADOLFO MOSCOSO
12287 ADR TECNOLOGY S.A.C.
11462 AERO CONDOR SAC
10752 AERO CONTINENTE
11137 AEROCONDOR SAC
13048 AEROINVERSIONES DEL PERU S.A.C.
11947 AEROLINEAS DEL PERU S.A.
14241 AEROMASTER DEL PERU S.A.C.
13290 AERONAUTIC SUPPORT S.A.C.


Los puedo listar en mi formulario con el siguiente codigo:


<?php
// Buscador para tablas MySQL escrito en PHP. Por Alex para www.webtaller.com
// Creado el 13-10-2003


////////////////////////////
// Configuración
///////////////////////////

//modifica estas variables según tu servidor de MySQL

$bd_servidor = "localhost";
$bd_usuario = "root";
$bd_contrasenya = "mysql";
$bd_bdname = "phpfacil";
$bd_tabla = "articulos"; // Tabla donde se harán las búsquedas
// Conexión y selección de la base de datos

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);

mysql_select_db($bd_bdname,$link);

////////////////////////////
// Formulario
///////////////////////////

?>

<center>
<p><h2>Prueba</h2></p>
<p><form name="buscador" method="post" action="buscador_generico.php"><br>

Palabra(s): <input type="text" name="palabra"><br>
<input type="submit" value="Enviar" name="enviar">
</form></p>
</center>

<?php

////////////////////////////
// Proceso del Formulario
///////////////////////////

if(isset($_POST['enviar'])) {

// Solo se ejecuta si se ha enviado el formulario

$query = "SELECT * from $bd_tabla WHERE `titulo` LIKE '%{$_POST['palabra']}%'";

$result = mysql_query($query,$link);



$found = false; // Si el query ha devuelto algo pondrá a true esta variable

while ($row = mysql_fetch_array($result)) {

$found = true;

echo "<p>";

foreach($row as $nombre_campo => $valor_campo) {

// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.


if(is_int($nombre_campo)) {

continue; //Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// índice numérico y otro con índice el nombre del campo.
// Solo nos interesa el del nombre del campo.

}
//inicial//echo "".$valor_campo."<br>";--

echo "".$valor_campo."<br>";


//echo "<input value=\"$valor_campo\" type=\"checkbox\"><br>";
//<input name=\"radiobutton\" type="\radio\" /> <br/>


}
echo "</p>";

}

if(!$found) {

echo "No se encontró la palabra introducida";

}

}
?>


Con eso genial ,lo listo , pero necesito seleccionar un nombre en particular , eso se haría con un radio button y luego el seleccionado pasarlo a otra form.

Slds. Gracias de antemano
  #2 (permalink)  
Antiguo 13/07/2011, 01:46
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Buenas,

Creo que te has complicado en demasía, con el for_each. Te explico rápido, cuando haces el $row = mysql_fetch_array($result) en $row, como tú bien dices, tienes un array con los valores del resultado de un registro (una fila completa) de la tabla, pero te complicas a la hora de utilizar $row. Si es un array cuyo índice es el nombre de la columna de la tabla y contenido el valor de dicho registro, por qué no utilizas directamente $row['titulo']?

Yo lo haría así (suponiendo que el Nombre está en título y el Codigo en codigo):
Código PHP:
<?php
////////////////////////////
// Proceso del Formulario
///////////////////////////

if(isset($_POST['enviar'])) {
    
// Solo se ejecuta si se ha enviado el formulario
    
$query "SELECT codigo, titulo FROM $bd_tabla WHERE titulo LIKE '%{$_POST['palabra']}%'";
    
$result mysql_query($query$link);
    
    
$found false// Si el query ha devuelto algo pondrá a true esta variable
    
while ($row mysql_fetch_array($result)) {
        if (!
$found$found true;
        echo 
'<input type="radio" name="grupo" value="' $row['titulo'] . '">' $row['titulo'] . '<br>';
    }
    if (!
$found) {
        echo 
'<p>No se encontró la palabra introducida</p>';
    }
}
?>
Espero que te sirva, un saludo.
  #3 (permalink)  
Antiguo 13/07/2011, 08:28
 
Fecha de Ingreso: julio-2011
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Gracias de antemano por la respuesta, mi codigo lo puse asi :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Formato de Ingeniería</title>
<link rel="stylesheet" type="text/css" href="view.css" media="all">
<!--<script type="text/javascript" src="view.js"></script>-->
<!--<script type="text/javascript" src="calendar.js"></script> M-->
</head>

<body id="main_body" >

<img id="top" src="top.png" alt="">
<div id="form_container">

<h1><a>Formato de Ingenier&iacute;a</a></h1>

<div class="form_description">
<center><p><h2>Clientes</h2></p></center>
</div>
<ul >

<?php
// Buscador para tablas MySQL escrito en PHP. Por Alex para www.webtaller.com
// Creado el 13-10-2003


////////////////////////////
// Configuración
///////////////////////////

//modifica estas variables según tu servidor de MySQL

$bd_servidor = "localhost";
$bd_usuario = "root";
$bd_contrasenya = "mysql";
$bd_bdname = "phpfacil";
$bd_tabla = "articulos"; // Tabla donde se harán las búsquedas
// Conexión y selección de la base de datos

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);

mysql_select_db($bd_bdname,$link);

////////////////////////////
// Formulario
///////////////////////////

?>

<center>

<p><form name="buscador" method="post" action="buscador_generico.php"><br>

Nombre de Cliente: <input type="text" name="palabra"><br><br>
<center><input type="submit" value="Enviar" name="enviar"></center>
<br><a href="nuevocliente.php">Nuevo Cliente</a>
</form>

</center>

<?php
////////////////////////////
// Proceso del Formulario
///////////////////////////

if(isset($_POST['enviar'])) {
// Solo se ejecuta si se ha enviado el formulario
$query = "SELECT codigo, titulo FROM $articulo WHERE titulo LIKE '%{$_POST['palabra']}%'";
$result = mysql_query($query, $link);

$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
if (!$found) $found = true;
echo '<input type="radio" name="grupo" value="' . $row['titulo'] . '">' . $row['titulo'] . '<br>';
}
if (!$found) {
echo '<p>No se encontró la palabra introducida</p>';
}
}
?>





</ul>

<div id="footer">
Generated by WMV</a>
</div>
</div>
<img id="bottom" src="bottom.png" alt="">
</body>
</html>



pero me sale esto u.u :



Notice: Undefined variable: articulo in E:\Software colaborativo\opengoo_1.3.1\opengoo\form\form\busca dor_generico.php on line 69

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Software colaborativo\opengoo_1.3.1\opengoo\form\form\busca dor_generico.php on line 73

No se encontr� la palabra introducida


La 69 :$query = "SELECT referencia, titulo FROM $articulo WHERE titulo LIKE '%{$_POST['palabra']}%'";

y la 73:while ($row = mysql_fetch_array($result)) {
  #4 (permalink)  
Antiguo 13/07/2011, 09:01
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

El primer error te da porque en la consulta "SELECT referencia, titulo FROM $articulo WHERE titulo LIKE '%{$_POST['palabra']}%'", $articulo sería una variable PHP que no tienes definida en ningún sitio, por lo tanto, no tiene valor.

El segundo error te lo da porque al estar mal la consulta del select, obviamente la variable $qry no está bien montada y el fetch te da ese error.

Un saludo.
  #5 (permalink)  
Antiguo 13/07/2011, 09:11
 
Fecha de Ingreso: julio-2011
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Gracias nuevamente por tu ayuda, solucione la primera, la segunda trate, pero ahora me aparece esto :


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Software colaborativo\opengoo_1.3.1\opengoo\form\form\busca dor_generico.php on line 61

Argumento no valido para mysql

while ($row = mysql_fetch_array($result)) { // No recorre?


Slds.
  #6 (permalink)  
Antiguo 13/07/2011, 09:20
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Si te da ese error es porque esta línea tiene algún problema y $result no existe:
$result = mysql_query($query, $link);

Y si esa línea tiene algún error es porque o $query está mal construida o $link tiene algún error. Rescata los errores de MySQL para ver qué puede pasar.
  #7 (permalink)  
Antiguo 13/07/2011, 09:22
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

He mirado tu código de nuevo, en esta línea:
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);

Tienes un espacio entre contras y enya?????!!!!! Eso petará por todos lados.

Te recomiendo que cuando hagas trabajo con la base de datos añadas a los métodos un or die (mysql_error()). Es decir:
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya) or die (mysql_error());
  #8 (permalink)  
Antiguo 13/07/2011, 09:26
 
Fecha de Ingreso: julio-2011
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Para nada, nose porque aqui salio con un espacio , esta sin espacio

"$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);"
  #9 (permalink)  
Antiguo 13/07/2011, 09:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Cita:
Iniciado por vgonga1986 Ver Mensaje
Si te da ese error es porque esta línea tiene algún problema y $result no existe:
$result = mysql_query($query, $link);

Y si esa línea tiene algún error es porque o $query está mal construida o $link tiene algún error. Rescata los errores de MySQL para ver qué puede pasar.
EDITO: Por cierto, te he visto muy activo en el foro estos días y me he permitido hacer una búsqueda de tus mensajes. He visto que tienes 40 mensajes sólo desde el día 7 de este mes (es decir, 5 días) y todos son en posts que has abierto tú mismo preguntando por lo menos por 8 cosas diferentes. Te estamos haciendo el trabajo entero, verdad?
  #10 (permalink)  
Antiguo 13/07/2011, 09:35
 
Fecha de Ingreso: julio-2011
Mensajes: 50
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: mostrar registros con radio button,seleccionar 1 y pasarlo a otra form.

Pucha estoy que le doy y le doy, pero nada u.u

Etiquetas: mysql, radiobutton
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 01:58.