Foros del Web » Programando para Internet » PHP »

Undefined variable por no mandar formulario

Estas en el tema de Undefined variable por no mandar formulario en el foro de PHP en Foros del Web. hola, tengo un formulario con un radio button, que dependiendo de las opciones me manda a hacer una búsqueda con php y mysql u otra. ...
  #1 (permalink)  
Antiguo 18/03/2012, 15:44
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Undefined variable por no mandar formulario

hola, tengo un formulario con un radio button, que dependiendo de las opciones me manda a hacer una búsqueda con php y mysql u otra. Lo tengo de la siguiente manera dentro del mismo php donde se encuentra el formulario:

Código PHP:
$busqueda $_POST['busqueda']; 
el caso es que si utilizo el formulario me funciona todo perfectamente pero al abrir la página php por primera vez, al no haber nada seleccionado en el formulario me pone:

Notice: Undefined variable: busqueda en linea tal y cual

cómo puedo solucionarlo para que no me dé error?? es que no sé como hacerlo.
P.D. no tiene que haber ningún radiobutton seleccionado de manera predeterminada
  #2 (permalink)  
Antiguo 18/03/2012, 16:09
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Undefined variable por no mandar formulario

Código PHP:
$busqueda = isset($_POST['busqueda'])?$_POST['busqueda']:0
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #3 (permalink)  
Antiguo 18/03/2012, 16:18
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: Undefined variable por no mandar formulario

ok gracias! más o menos iba encaminada porque he intentado usar el isset, pero no conseguía hacerlo de manera correcta. Por cierto, el código que has puesto significa que hace que busqueda se ponga con su primer valor? porque el problema es que tengo definidas cuatro variables dependiendo de lo que pone en búsqueda:

Voy a explicarlo más detalladamente porque ahora me dice que tengo otras cuatro variables sin definir.

el formulario tiene dos radio button y dependiendo de lo que pongas en uno u otro habilita unas listas desplegables para que elijas unos valores. Había puesto el siguiente código para hacer la búsqueda:

Código PHP:
if ($busqueda == "fechas") {
    
$mesd $_POST['mesd'];
    
$aniod $_POST['aniod'];
    
$mesh $_POST['mesh'];
    
$anioh $_POST['anioh'];
} elseif (
$busqueda == "temporadas") {
    
$mesd substr($_POST['temporadaselec'],0,2);
    
$aniod substr($_POST['temporadaselec'],2,4);
    
$mesh $mesd -1;
    
$anioh $aniod +1;

pero ahora resulta que si pongo lo que me has dicho para arreglar lo de $busqueda, las otras cuatro variables de $mesd, $aniod, $mesh, $anioh dice que tampoco están definidas, se arregla de manera similar a lo otro??,

esta parte de lo que me has puesto:
Código PHP:
?$_POST['busqueda']:0
significa que coge el primer valor??

gracias por la ayuda
  #4 (permalink)  
Antiguo 18/03/2012, 16:45
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: Undefined variable por no mandar formulario

Da igual ya lo he arreglado poniendo :1 en vez de :0
  #5 (permalink)  
Antiguo 18/03/2012, 19:25
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Undefined variable por no mandar formulario

Código PHP:
$busqueda = isset($_POST['busqueda'])?$_POST['busqueda']:1
"?" es un operador condicional, significa que si la condición se cumple se asigna el primer valor, de lo contrario se asigna el segundo valor; en este caso si 'busqueda' está definido se asigna el valor de 'busqueda', de lo contrario se asigna el valor de 1.
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **

Etiquetas: formulario, mysql, undefined, variables
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 18:05.