我试图为一个网站建立一个简单的PHP联系表单,我需要一些帮助修改PHP从选择菜单中列出多个项目,并将感谢帮助。我是一名平面设计师,而不是开发人员,所以很多内容都超出了我的理解范围。这就是问题所在:
HTML:<form method="post" action="projectplanner.php">
<label>Name*</label><input class="text" name="name" placeholder="Typ hier uw naam">
<label>Email*</label><input class="text" name="email" type="email" placeholder="Typ hier uw email">
<label>Telefoon*</label><input class="text" name="telefoon" type="tel" placeholder="Telefoon of mobiel">
<label>Organisatie*</label><input class="text" name="organisatie" placeholder="Ik vertegenwoordig..">
<label>Bestaande website (indien van toepassing)</label><input class="text" name="website" placeholder="http://www">
<label>Soort project</label>
<input name="project[]" type="checkbox" value="huisstijl" class="check" />Huisstijl<br />
<input name="project[]" type="checkbox" value="websiteontwerp" class="check"/>Website ontwerp<br />
<input name="project[]" type="checkbox" value="websiteontwikkeling" class="check"/>Website ontwikkeling<br />
<input name="project[]" type="checkbox" value="onlinemarketing" class="check-last"/>Online marketing<br />
<label>Beschrijving van uw project</label>
<textarea class="project_text" name="beschrijving" placeholder="Een globale beschrijving. Doelstelling, publiek, concurenten?"></textarea>
<label>Inspiratie</label>
<textarea class="project_text" name="inspiratie" placeholder="Kopieer links naar website / apps / afbeeldingen die u inspireren"></textarea>
<label>* 2+2= ? (Anti-spam)</label>
<input name="human" placeholder="Antwoord">
<input id="submit" name="submit" type="submit" value="Verzend">
PHP: <?php
$naam = $_POST['naam'];
$email = $_POST['email'];
$telefoon = $_POST['telefoon'];
$organisatie = $_POST['organisatie'];
$website = $_POST['website'];
$beschrijving = $_POST['beschrijving'];
$project = $_POST['project'];
$inspiratie = $_POST['inspiratie'];
$from = 'From: the website';
$to = 'someone@somewhere.com';
$subject = 'onderwerp';
$human = $_POST['human'];
$body =
"Van: $name'n
E-Mail: $email'n
Telefoon: $telefoon'n
Organisatie: $organisatie'n
Website: $website'n
Project Soort: $project'n
Omschrijving: $beschrijving'n
Inspiratie: $inspiratie";
if ($_POST['submit'] && $human == '4') {
if (mail ($to, $subject, $body, $from)) {
print ("Dank u wel");
/*echo '<p>Uw bericht is verzonden!</p>';*/
} else {
echo '<p>Oeps. Er ging iets fout. Probeer nogmaals.</p>';
}
} else if ($_POST['submit'] && $human != '4') {
/*echo '<p>Uw anti-spam antwoord is niet goed ingevuld.</p>';*/
}
这将列出项目(如果有已选中的),如下所示:
项目分类:websiteontwerp, websiteontwikkeling, onlinemarketing
<?php
// insure form variables exist
$name = isset($_POST['name']) ? $_POST['name'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$telefoon = isset($_POST['telefoon']) ? $_POST['telefoon'] : '';
$organisatie = isset($_POST['organisatie']) ? $_POST['organisatie'] : '';
$website = isset($_POST['website']) ? $_POST['website'] : '';
$beschrijving = isset($_POST['beschrijving']) ? $_POST['beschrijving'] : '';
$inspiratie = isset($_POST['inspiratie']) ? $_POST['inspiratie'] : '';
$human = isset($_POST['human']) ? $_POST['human'] : '';
$submit = isset($_POST['submit']) ? true : false;
$project = isset($_POST['project'])
? implode(', ', $_POST['project']) // gather selected checkboxes
: 'Er geen projecten geselecteerd'; // (Unsure of translation)
$from = 'From: the website';
$to = 'someone@somewhere.com';
$subject = 'onderwerp';
$body =
"Van: $name'n
E-Mail: $email'n
Telefoon: $telefoon'n
Organisatie: $organisatie'n
Website: $website'n
Project Soort: $project'n
Omschrijving: $beschrijving'n
Inspiratie: $inspiratie";
if ($submit && $human == '4') {
if (mail ($to, $subject, $body, $from)) {
print ("Dank u wel");
/*echo '<p>Uw bericht is verzonden!</p>';*/
} else {
echo '<p>Oeps. Er ging iets fout. Probeer nogmaals.</p>';
}
} else if ($submit && $human != '4') {
/*echo '<p>Uw anti-spam antwoord is niet goed ingevuld.</p>';*/
}
?>
如果用户发送表单时选中了任何复选框,PHP将以数组的形式接收它们。implode()
函数,将所有这些组合成一个逗号分隔的字符串。如果您愿意,可以随意将逗号(和/或后面的空格)更改为其他内容。
当您在字段名(即:project[])后面添加括号时,PHP将创建一个给定名称减去括号的数组。对于您的情况,最快的解决方案可能是使用foreach循环遍历所有选中的框,如下所示:
$body =
"Van: $name'n
E-Mail: $email'n
Telefoon: $telefoon'n
Organisatie: $organisatie'n
Website: $website'n
Project Soort: ";
foreach ($project as $checkbox) {
$body .= "$checkbox, ";
}
$body .= "'n
Omschrijving: $beschrijving'n
Inspiratie: $inspiratie";