作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将选定的 html 项目附加到要与电子邮件一起发送的表单上。我想知道如何正确地从选择列表中获取值并将其传递给 PHP。我无法正确地弄清楚。我将不胜感激任何帮助。下面是我的代码...
function _(id){ return document.getElementById(id); }
function submitForm(){
_("contact-submit").disabled = true;
_("status").innerHTML = 'please wait ...';
var formdata = new FormData();
formdata.append( "n", _("n").value );
formdata.append( "e", _("e").value );
formdata.append( "t", _("t").value );
formdata.append( "w", _("w").value );
formdata.append( "m", _("m").value );
var ajax = new XMLHttpRequest();
ajax.open( "POST", "contact.php" );
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
if(ajax.responseText == "success"){
_("contact-form").innerHTML = '<h2 class="tnx">Thanks '+_("n").value+', we will be in touch soon!</h2>';
} else {
_("status").innerHTML = ajax.responseText;
_("contact-submit").disabled = false;
}
}
}
ajax.send( formdata );
}
HTML
<div class="cat-select">
<label class="cat-selects" for="subject"><span>Area of Interest</span>
<select name="subject" class="select-field" id="s">
<option value="General Inquiry">General Inquiry</option>
<option value="Elderly Care">Elderly Care</option>
<option value="Child Care">Child Care</option>
</select>
</label>
</div>
PHP
<?php
if( isset($_POST['n']) && isset($_POST['e']) && isset($_POST['t']) && isset($_POST['w']) && isset($_POST['m']) ){
$n = $_POST['n']; // HINT: use preg_replace() to filter the data
$e = $_POST['e'];
$t = $_POST['t'];
$w = $_POST['w'];
$m = nl2br($_POST['m']);
$to = "hello@gmail.com";
$from = $e;
$subject = 'Contact Form Message';
$message = '<b>Name:</b> '.$n.' <br><b>Email:</b> '.$e.' <p>'.$s.' '.$m.'</p>';
$headers = "From: $from\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
if( mail($to, $subject, $message, $headers) ){
echo "success";
} else {
echo "The server failed to send the message. Please try again later.";
}
}
?>
最佳答案
id
您的<select>
element 是“s”,但你的 Javascript 没有在任何地方引用它。假设你的_()
功能指id
,您将需要添加以下具有类似行的行。
formdata.append( "s", _("s").value );
这应该使$_POST['s']
可供您在 PHP 端使用。
请记住执行一些操作来转义通过此表单发送的所有字段,而不仅仅是文本输入和文本区域,以避免任何利用该网站或电子邮件收件人的尝试。
关于javascript - 如何在 PHP 联系表单中附加选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42352041/
我是一名优秀的程序员,十分优秀!