2010-07-07 59 views
1

我正在为将表单发送到他们的电子邮件的肉类储物柜公司创建订单。如果您选择一个项目,则无法选择其他项目;如T骨和纽约地带,你可以有一个或另一个,但不是两个。这是我的代码的样子。如果在PHP表单和表单输出中声明

<P>T-bone steak <input type="radio" name="T-bone and NY" id="T-bone steak" /> 
or New York Strip steak <input type="radio" name="T-bone and NY" id="New York Strip" /> </p> 

这不会阻止有关人士选择这两个,但是当他在他的电子邮件中的意见,他认为名字=“T骨和NY”,所以他不知道他们选择的是哪一个。我认为它会显示id =“T-bone”或“NY Strip”。我相信有一个更好的方式来做这个if语句。

其次,当他们收到电子邮件时,它具有所选字段的所有字段的名称,并在后续字词中进行说明。例如,如果有人选择肋排的电子邮件会说:

肋排:上

有没有办法准确地发送形式为用户看到它。也许在图片,文字文档或访问数据库?我对任何事情都很开放。

如果你想看到它的网址是www.spillvillelocker.com/beef.php

非常感谢你:)

+1

我喜欢这个问题,出于某种原因...牛排和编程..在我生命中的两个主食。 – Zak 2010-07-07 17:03:03

回答

0

我想你只需要提供一个值=“”属性显示每个单选按钮指定哪个值...同时NAME和ID应该相等。

<P>T-bone steak <input type="radio" name="MEAT1" id="MEAT1" value="TBONE"/> 
or New York Strip steak <input type="radio" name="MEAT1" id="MEAT1" value="NYSTRIP"/>  </p> 
+0

没有必要对它们进行平等设置。 ID attr甚至不必存在。 – 2010-07-07 16:59:58

+0

你是对的,我想我会这样做,以避免混淆......特别是对于收音机箱,我可以看到让他们有所不同,因此您可以对各个选项执行操作。 – Fosco 2010-07-07 17:18:23

0

您需要设置这些输入的值属性。 顺便说一句,你不应该在名称属性中有空格。

+0

好的,只是好奇,name属性中的空格是干什么用的? – Lars 2010-07-07 17:03:20

1

您的代码应该是这样的:

<P> 
T-bone steak <input type="radio" name="steak" value="T-bone steak" id="tbonesteak" /> 
or New York Strip steak <input type="radio" name="steak" value="New York Strip" id="nystrip" /> 
</p> 

注意,我有“名”是上是相同的,不同的“价值”。此外,“ID”属性不应该包含空格,所以我将它们仅更改为字母数字。

0

除了Mike发布的内容之外,关于第二个问题,“为什么电子邮件会显示'Prime Rib:on',这又是因为没有赋予该元素的值属性,单选按钮的默认值为'on '和‘关’。如果不设置明确的值,你留下了默认值。

有两件事情,你可以为此做。

  1. 设置表单元素的显式值,像

    <input type="radio" name="primeRib" value="Yes"> Prime Rib

这将在电子邮件中显示为'primeRib:是'。

  1. 您可以做的第二件事就是使用PHP解析您的响应,只发送您想要的数据。沿着线的东西:

<?php foreach ($_POST as $key=>$value) { if ($value=="off") { continue; } else { $email.="$key\n"; } } ?>

类似的东西会跳过被设置为“关闭”,并为每个不变量,它会添加$键每个$ _ POST变量( “name”属性中的数据)添加到$ email变量中,或者将数据添加到要发送的电子邮件中。有很多事情你可以做,但至少这可以让你只对变量进行过滤/检查。