【发布时间】:2011-08-16 14:45:27
【问题描述】:
我最近一直在创建一个 PHP 电子邮件表单,但无法正确发送复选框值。表格是我在别处找到的,一直在修改。 HTML 相当简单。
<label for="needs">I am looking for...</label>
<input name="needs[]" id="needs" type="checkbox" value="product list">A Product List<br>
<input name="needs[]" id="needs" type="checkbox" value="educational support">Educational Support<br>
<input name="needs[]" id="needs" type="checkbox" value="catering options">Catering Options<br>
<input name="needs[]" id="needs" type="checkbox" value="party ideas">Party Ideas<br>
<input name="needs[]" id="needs" type="checkbox" value="healthy alternatives">Healthy Alternatives<br>
<input name="needs[]" id="needs" type="checkbox" value="other">Other (please specify)<br>
截至目前,当我通过 PHP 发送它时,它只是返回一个选定的值,或者如果选择了多个,则表示“数组”。我想要的是发送给我的邮件消息以列出所选值。我在其他地方搜索过,但还没有找到和我一样的情况。这是PHP:
<?php
$msg=
'Name: '.$_POST['name'].'<br />
Category: '.$_POST['category'].'<br />
Email: '.$_POST['email'].'<br />
Phone: '.$_POST['telephone'].'<br />
Looking for: '.$_POST['needs'].'<br />
IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />
'.nl2br($_POST['message']).'
';
?>
其余的代码是设置和发送消息。我意识到还有其他方法可以做我想做的事,但我想继续使用此处包含的 $msg。
任何帮助将不胜感激,谢谢。
修改代码:
$msg=
'Name: '.$_POST['name'].'<br />
Category: '.$_POST['category'].'<br />
Email: '.$_POST['email'].'<br />
Phone: '.$_POST['telephone'].'<br />
Looking for: '.(is_array($_POST['needs'])?implode("\n", $_POST['needs']):$_POST['needs']).'<br />
IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />
'.nl2br($_POST['message']).'
';
【问题讨论】:
-
要改进您的 HTML,您还应该从输入标签中删除 id="needs" 属性。 id 值应该是唯一的