Foros del Web » Programando para Internet » PHP »

mostrar (select) diferente base de datos al pinchar 2 radio button

Estas en el tema de mostrar (select) diferente base de datos al pinchar 2 radio button en el foro de PHP en Foros del Web. Hola junto con saludar, les planteo una duda que me surge, estoy tratando como el titulo lo dice de crear un buscador pero que encima ...
  #1 (permalink)  
Antiguo 19/08/2011, 19:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta mostrar (select) diferente base de datos al pinchar 2 radio button

Hola junto con saludar, les planteo una duda que me surge, estoy tratando como el titulo lo dice de crear un buscador pero que encima del formulario hayan dos radio botón, entre los cuales al seleccionar cambien la dirección de la búsqueda, en la misma tabla pero diferentes columnas:


Código formulario:

Código PHP:
<input name="tipo_busqueda" id="radio" type="radio" value="compra" checkedComprador 
<input type="radio" name="tipo_busqueda" id="radio" value="vemnde"Vendedor

</p><form method="post" action="prueba de buscador.php">

  <
div align="center"> <strongBuscar Nombres: </strong> <input type="text" name="T1" size="60" id="T1">

<
input type="submit" value="Buscar" name="buscar">

</
div>

</
form

Código PHP:

Código PHP:
$radio $_POST['radio'];
  

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

   
$query "SELECT * FROM indice WHERE '$radio' LIKE '%" $_POST['T1'] . "%' ORDER BY compra ASC";
   
} else {
  
   
$query "SELECT * FROM indice WHERE '$radio' ORDER BY compra ASC";
   


A ver si alguien me echa una mano y me dice en que estoy fallando, de antemano muchas gracias....
  #2 (permalink)  
Antiguo 19/08/2011, 19:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

En el IF deberias comparar el valor de $radio y no ver si T1 esta definido, solo eso.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/08/2011, 19:39
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Pero el error me lo manda en esta línea como variable no reconocida

Código PHP:
$radio $_POST['radio']; 
  #4 (permalink)  
Antiguo 19/08/2011, 20:09
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Yo creo que deberias recibir los campos con el nombres es decir :

$radio = $_POST['tipo_busqueda'];
  #5 (permalink)  
Antiguo 19/08/2011, 23:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Basico de HTML:

1. Si vas a usar inputs tipo radio, estos deben tener el mismo nombre, de manera que se envie por $_POST (o $_GET, si es el caso) el valor del que se haya seleccionado.

Código HTML:
Ver original
  1. <input type="radio" name="ejemplo" value="valor1" checked="checked" /> Texto 1
  2. <input type="radio" name="ejemplo" value="valor2" /> Texto 2
  3. ...
  4. <input type="radio" name="ejemplo" value="valorN" /> Texto N
  5. <input type="radio" name="tipo_busqueda" value="otro_valor" checked="checked" /> Otro texto

Si pones otro nombre a un radio, sera tratado ya como un campo diferente. En el ejemplo, tienes 4 radios, pero realmente solo dos campos: "ejemplo" y "tipo_busqueda".

2. Dos o mas campos pueden compartir el mismo nombre, pero ningun elemento (div, input, form, span, a, etc.) debe compartir ID con otros, este atributo debe ser unico.

Código HTML:
Ver original
  1. <input type="radio" name="ejemplo" id="radio1" value="valor1" checked="checked" /> Texto 1
  2. <input type="radio" name="ejemplo" id="radio2" value="valor2" /> Texto 2

Eso es lo correcto.

En cuanto al mensaje de error que obtienes, es porque estas tratando de acceder a una variable que no esta definida, supongo que porque no se ha enviado todavia el formulario. Primero debes ver si existe, con isset(), como lo haces para el campo T1 y entonces tomar el valor.

Dos opciones:
Código PHP:
Ver original
  1. // La normal
  2. if(isset($_POST['variable'])) {
  3.     $variable = $_POST['variable'];
  4. } else {
  5.     $variable = false; // Aqui debes asignar el valor inicial que requieras
  6. }
  7.  
  8. // Con asignacion ternaria (lo mismo, pero mas barato):
  9. $variable = (isset($_POST['variable'])) ? $_POST['variable'] : false;

Finalmente, la consulta que quieres generar en el ELSE de tu IF, posiblemente te vaya a causar problemas, lo conveniente seria que elimines WHERE '$radio', ya que parece que vas a mostrar todo.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 20/08/2011, 08:54
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Muchas gracias por la explicación....
  #7 (permalink)  
Antiguo 20/08/2011, 11:16
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Bueno estoy trabajando un poco en los datos que me enviaste y me surge una duda en la línea

Código PHP:
$variable false// Aqui debes asignar el valor inicial que requieras 
Me la puedes explicar un poco por favor....
  #8 (permalink)  
Antiguo 20/08/2011, 15:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Es sencillo, si vas a hacer algo con esa variable, asegurate de que tiene un valor y dejarias de comparar sobre $_POST en pasos posteriores, por ejemplo:

Código PHP:
Ver original
  1. if($variable !== false) {
  2.     // Tenemos un valor, aqui hay que realizar alguna accion
  3.     // Busqueda, insercion de datos, etc.
  4. }
  5.  
  6. // Continuas con tu script normalmente
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 20/08/2011, 23:18
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Respuesta: mostrar (select) diferente base de datos al pinchar 2 radio button

Saludos estimado Triby me acabo de dar cuenta que escribí mal mi título, no es para buscar con radio button en dos bases de datos.

Es para buscar en base de datos_1, tabla_1 pero entre dos columnas diferentes, me explico: tengo 7 columnas, las dos primeras se llaman compra y vende, tengo dos radio button con el mismo nombre pero tienen dos value diferentes, uno compra y el otro vende.

Por esta razón tengo este código en el formulario:

Código PHP:
<input type="radio" name="tipo_busqueda" value="vende" checked="checked" /> Comprador <input type="radio" name="tipo_busqueda" value="compra" /> Vendedor

</p><form method="post" action="prueba de buscador.php">

  <
div align="center"> <strongBuscar Nombres: </strong> <input type="text" name="T1" size="60" id="T1">

<
input type="submit" value="Buscar" name="buscar">

</
div>

</
form

Y este código en el buscador por llamarlo asi:

Código PHP:
if(isset($_POST['tipo_busqueda'])) {

$radio $_POST['tipo_busqueda'];

} else {

$radio false// Aqui debes asignar el valor inicial que requieras
 
}


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

   
$query "SELECT * FROM indice WHERE compra LIKE '%" $_POST['T1'] . "%' ORDER BY compra ASC";
   
} else {
  
   
$query "SELECT * FROM indice WHERE compra ORDER BY compra ASC";
   


Entonces después de: " SELECT * FROM indice WHERE

Viene el nombre de la tabla en la que are la búsqueda, en mi en mi caso compra o vende, como coloco la variable $radio después de WHERE????


Se agradece!!!!

Etiquetas: mysql+php, radio, botones
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 17:41.