【问题标题】:PHP: Request the values of a HTML form drop down listPHP:请求 HTML 表单下拉列表的值
【发布时间】:2012-08-10 06:17:00
【问题描述】:

我有一个 HTML 表单,它使用简单的 PHP mail() 脚本将其内容发送到电子邮件地址。我刚刚实现了一个下拉列表:

<select name="event">
  <option name="event1" value="event1">Event 1</option>
  <option name="event2" value="event2">Event 2</option>
  <option name="event3" value="event3">Event 3</option>  
</select>

但我正在努力寻找一种通过 mail() 发送所选项目的方法

我尝试过使用选择元素的名称:

$event= $_REQUEST['event'] ;

以及选项元素的名称:

$event1= $_REQUEST['event1'] ;
$event2= $_REQUEST['event2'] ;
$event3= $_REQUEST['event3'] ;

但这些似乎对我不起作用。有谁知道通过选择器列表检索和发送信息的正确方法?谢谢

【问题讨论】:

  • 选择只有名称而不是选项
  • $event = $_REQUEST['event']; 应该可以工作,我不知道为什么它不适合你。您可以提供更多信息吗?
  • @ShaquinTrifonoff 下面的答案是正确的。似乎它对我不起作用,因为我同时为 select 和 option 元素命名 - 似乎不喜欢那个

标签: php html forms email


【解决方案1】:

将此用于您的 html 表单:

<select name="event">
 <option value="event1">Event 1</option>
 <option value="event2">Event 2</option>
 <option value="event3">Event 3</option>
</select>

并在表单提交到的 php 页面上使用它:

$event = $_POST['event']

$event = $_GET['event']

【讨论】:

    【解决方案2】:

    每个选项元素没有自己的名字,只有一个值。

    来源:http://www.w3.org/TR/html401/interact/forms.html#h-17.6

    从您的选项元素中删除name 属性:

    <select name="event">
      <option value="event1">Event 1</option>
      <option value="event2">Event 2</option>
      <option value="event3">Event 3</option>  
    </select>
    

    根据您的表单元素使用的方法(postget),您应该使用以下任一方法:

    $event = $_POST["event"];
    

    $event = $_GET["event"];
    

    除了使用 mail() 之外,如果保存到数据库或打印回用户,不要忘记使用 htmlspecialchars()mysqli_real_escape_string()

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2021-07-07
      • 2019-06-27
      • 2015-03-02
      相关资源
      最近更新 更多