2011-02-17 19 views
8

Tengo una forma básica que estoy enviando usando PHP básico. Tengo la presentación del formulario funcionando bien, excepto que tengo un botón de opción (para el método de contacto preferido) y no estoy seguro de cómo agregar eso en el PHP para que envíe el correo electrónico. Ambas opciones de botón de opción tienen el mismo nombre, por lo que no funciona como el valor. Mi código está abajo.Botones de radio con manejo de formulario PHP

El PHP es el siguiente:

<?php 
    $name = stripslashes($_POST['name']); 
    $email = stripslashes($_POST['email']); 
    $phone = stripslashes($_POST['phone']); 
    $contact = stripslashes($_POST['contact']); 
    $message = stripslashes($_POST['message']); 
    $form_message = "Name: $name \nEmail: $email \nPhone: $phone \nPreferred Method of Contact: $contact \nMessage: $message"; 

// Exit process if field "human" is filled (because this means it is spam) 
if ($_POST['human']) { 
    echo 'Tastes Like Spam!'; exit; } 
// if it is not filled, submit form 
else { 
    header("Location: http://www.newurl.com"); 

    mail("[email protected]", "Email Subject", $form_message, "From: $email"); 
} 
?> 

El HTML para el formulario es el siguiente:

<form method="post" id="form" action="handle_form.php"> 
    <div class="field"> 
     <input type="text" name="human" id="human" class="txt" /> 
    </div> 
    <div class="field form-inline"> 
     <label class="contact-info" for="txtName">Name*</label> 
     <input type="text" name="name" id="name" class="txt" value=""/> 
    </div> 
    <div class="field form-inline"> 
     <label class="contact-info" for="txtEmail">Email*</label> 
     <input type="text" name="email" id="email" class="txt" value=""/> 
    </div> 
    <div class="field form-inline"> 
     <label class="contact-info" for="txtPhone">Phone</label> 
     <input type="text" name="phone" id="phone" class="txt" value=""/> 
    </div> 
    <div class="field form-inline radio"> 
     <label class="radio" for="txtContact">Preferred Method of Contact</label> 
     <input class="radio" type="radio" name="contact" checked /> <span>Email</span> 
     <input class="radio" type="radio" name="contact" /> <span>Phone</span> 
    </div> 
    <div class="field form-inline"> 
     <textarea rows="10" cols="20" name="message" id="message" class="txt" value=""></textarea> 
    </div> 
    <div class="submit"> 
     <input class="submit" type="submit" name="submit" value="Submit Form"> 
    </div> 
    </form> 

Muchas gracias por la ayuda!

+0

también podrán enlazar las etiquetas y InputFields proporcionando el id de entrada en el atributo de la etiqueta –

+0

Una forma más sencilla de vincular las etiquetas de radio y casillas de verificación es envolver el texto y la entrada en un '

Respuesta

15
<div class="field form-inline radio"> 
    <label class="radio" for="txtContact">Preferred Method of Contact</label> 
    <input class="radio" type="radio" name="contact" value="email" checked /> <span>Email</span> 
    <input class="radio" type="radio" name="contact" value="phone" /> <span>Phone</span> 
</div> 

Nota del value atributo añadido.

Y el PHP:

$contact = $_POST['contact'] 
//Will return either "email" or "phone". 
+2

Él está utilizando POST para enviar el formulario. – Tim

+0

Wow, gracias a todos por la respuesta rápida. Pensé que lo había intentado y no funcionó, pero lo intenté nuevamente y funciona perfectamente. ¡Gracias! – Andrew

+2

@Chris Mod leve a tener en cuenta en el código anterior, "teléfono" debe estar entre comillas. – Sara44

2

You radios necesitan valores:

<input class="radio" type="radio" value="email" name="contact" checked /> <span>Email</span> 
    <input class="radio" type="radio" value="phone" name="contact" /> <span>Phone</span> 
2

acaba de dar su radio entradas A-atributo de valor. Esto es lo que se enviará a través de POST. A continuación, puede acceder a través de $ _POST ['nameofradio']

<input class="radio" type="radio" name="contact" value="Email" checked /> <span>Email</span> 
    <input class="radio" type="radio" name="contact" value="Phone" /> <span>Phone</span> 
1

Fácil! Solo agregue un valor a sus botones de radio.

<input class="radio" type="radio" name="contact" value="Email" checked /> <span>Email</span> 
<input class="radio" type="radio" name="contact" value="Phone" /> <span>Phone</span> 
Cuestiones relacionadas