带有 PHP 表单处理的单选按钮

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5031768/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 16:35:15  来源:igfitidea点击:

Radio Buttons with PHP Form Handling

phphtmlformssubmitform-submit

提问by Andrew

I have a basic form that I am submitting using some basic PHP. I have the form submission working great, except that I have a radio button (for preferred method of contact) and I am not sure how to add that in the PHP so that sends in the email. Both radio button options have the same name, so that isn't working as the value. My code is below.

我有一个使用一些基本 PHP 提交的基本表单。我的表单提交工作得很好,除了我有一个单选按钮(用于首选联系方式),我不知道如何在 PHP 中添加它,以便在电子邮件中发送。两个单选按钮选项具有相同的名称,因此不能作为值使用。我的代码如下。

The PHP is as follows:

PHP如下:

<?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" );
}
?>

The HTML for the form is below:

表单的 HTML 如下:

  <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>

Thanks so much for the help!

非常感谢你的帮忙!

回答by Chris Sobolewski

<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>

Note the added valueattribute.

注意添加的value属性。

And the PHP:

和 PHP:

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

回答by Capsule

You radios need values:

您的收音机需要值:

  <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>

回答by Tim

Just give your radio inputs a value-attribute. This is what will get submitted via POST. You can then access it via $_POST['nameofradio']

只需给您的收音机输入一个值属性。这是将通过 POST 提交的内容。然后您可以通过 $_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>

回答by Stephen S.

Easy! Just add a value to your radio buttons.

简单!只需为您的单选按钮添加一个值。

<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>