Foros del Web » Programando para Internet » PHP »

Error en "radio buttons"

Estas en el tema de Error en "radio buttons" en el foro de PHP en Foros del Web. Hola amigos de forosdelweb, tengo el siguiente problema: He creado una encuesta, para la cual uso un archivo HTML y un archivo PHP, el código ...
  #1 (permalink)  
Antiguo 11/12/2008, 11:09
 
Fecha de Ingreso: febrero-2007
Mensajes: 51
Antigüedad: 17 años, 2 meses
Puntos: 1
Error en "radio buttons"

Hola amigos de forosdelweb, tengo el siguiente problema:

He creado una encuesta, para la cual uso un archivo HTML y un archivo PHP, el código que va en el HTML es el siguiente:

<form action="thank_you.php" method="post">
<p>1. The top reason I read your website/daily email is for the (choose one):<br />
<input name="radiobutton" type="radio" value="Company profiles" />Company profiles<br />
<input name="radiobutton" type="radio" value="News Headlines" />News Headlines<br />
<input name="radiobutton" type="radio" value="Expert resource guest columns" />Expert resource guest columns<br />
<input name="radiobutton" type="radio" value="Look for interesting events" />Look for interesting events</p>

<p>2. How often do you read our daily email?<br />
<input name="radiobutton2" type="radio" value="Everyday" />Everyday<br />
<input name="radiobutton2" type="radio" value="Usually 2-3 times a week" />Usually 2-3 times a week, depending on my schedule<br />
<input name="radiobutton2" type="radio" value="Maybe once a week" />Maybe once a week</p>

<p>
<input name="submit" type="submit" value="Submit" />
<input name="reset" type="reset" value="Clear" />
</p>
</form>


En el archivo PHP, va el siguiente código:

<?php
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$body = '<html><head></head><body>' .

'<b> 1. The top reason I read you website-daily email is for the: </b> ' . $_POST['radiobutton'] . '<br>' .
'<b> 2. How often do you read our daily email</b> ' . $_POST['radiobutton2'] . '<br>' .

'</body></html>';

mail("daniel@hotmail,com", "Encuesta 2008", $body, $headers);
?>



Si la persona que está llenando la encuesta selecciona cualquier opción, todo esta bien, me llega un email con la encusta de forma correcta. Pero en caso la persona decida no marcar ninguna opción, tambien me llega el email correctamente, pero a la persona que llena la encuesta le aparece este mensaje de error:

Notice: Undefined index: radiobutton in /home/www/danielwebsite.com/thank_you.php on line 15


Les agradeceré mucho una correción al código por favor.
  #2 (permalink)  
Antiguo 11/12/2008, 11:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error en "radio buttons"

Tienes que usar ifs() y comprobar con isset() si existe la variable.

Saludos.
  #3 (permalink)  
Antiguo 11/12/2008, 11:19
 
Fecha de Ingreso: febrero-2007
Mensajes: 51
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Error en "radio buttons"

Cita:
Iniciado por GatorV Ver Mensaje
Tienes que usar ifs() y comprobar con isset() si existe la variable.

Saludos.
Me podrías dar un ejemplo por favor? mis conocimientos de PHP son bastante primitivos. Disculpa la molestia.

Última edición por danielgnr; 11/12/2008 a las 15:13
  #4 (permalink)  
Antiguo 11/12/2008, 11:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error en "radio buttons"

Cita:
Iniciado por danielgnr Ver Mensaje
[...] Les agradeceré mucho una correción al código [...]



Código:
VARIABLE = EXISTE(POST[INDICE]) ? POST[INDICE] : ([VALOR_POR_DEFECTO]|NULL);
en términos de PHP

Código PHP:
$foo = isset($bar)? $barnull
y así, simplemente declaras bien tus variables... y bien te va ir tu script!


tal como dice GatorV, usa if's .... e isset (o if-then-else cortos)

Referencia:

http://php.net/isset
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/12/2008, 15:13
 
Fecha de Ingreso: febrero-2007
Mensajes: 51
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Error en "radio buttons"

Lo más cerca que estuve de solucionar mi problema es con este código, pero tampoco funciona:

$body = '<html><head></head><body>' .

'<b> 1. The top reason I read your website/daily email is for the (choose one): </b>' ;
if (isset($_POST['radiobutton']))
echo $_POST["radiobutton"] ;

'</body></html>';


Obviamente estoy errado en algo, alguna idea?
  #6 (permalink)  
Antiguo 11/12/2008, 16:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Error en "radio buttons"

Hola como dicen los apañeros nunca deberias permitir que se envie el formulario sin completar los campos obligatorios.

Primero deberias comprobar que tus variables de radio llegan con valor.

Ejemplo
Código:
if($_POST['radiobutton'] == "" || $_POST['radiobutton2'] == "") //si la variable radiobutton o radiobutton2 vienen vacias
{
    //deberias avisar al usuario y devolverle a la pagina de la encuesta
}
else
{
    //si se cumple y los dos tienen dato envias el email de la encuesta
}
Espero que te sirva
  #7 (permalink)  
Antiguo 11/12/2008, 18:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error en "radio buttons"

Código PHP:
$foo 'el bar, y un candy: ';
$foo .= isset($bar)? $bar'';
$foo .= 'el bar, y un candy: ';
$foo .= isset($bar)? $bar''
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 03:59.