我有弹出窗体的问题。它不发送电子邮件。这是html表单:
<form action="#" method="post" id="form" >
<img src="images/3.png" id="close"/>
<h2>Contact Us</h2><hr/>
<input type="text" name="name" id="name" placeholder="Name"/>
<input type="text" name="email" id="email" placeholder="Email"/>
<textarea name="message" placeholder="Message" id="msg"></textarea>
<a id="submit" href="javascript: check_empty()">Send</a>
</form>
JS弹出html表单:
function check_empty(){
if(document.getElementById('name').value == ""
|| document.getElementById('email').value == ""
||document.getElementById('msg').value == "" ){
alert ("Fill All Fields !");
}
else {
document.getElementById('form').submit();
alert ("Form submitted successfully...");
}
}
//function to display Popup
function div_show(){
document.getElementById('abc').style.display = "block";
}
//function to check target element
function check(e){
var target = (e && e.target) || (event && event.srcElement);
var obj = document.getElementById('abc');
var obj2 = document.getElementById('popup');
checkParent(target)?obj.style.display='none':null;
target==obj2?obj.style.display='block':null;
}
//function to check parent node and return result accordingly
function checkParent(t){
while(t.parentNode){
if(t==document.getElementById('abc'))
{
return false
}
else if(t==document.getElementById('close'))
{
return true
}
t=t.parentNode
}
return true
}
并且php函数将表单数据发送到电子邮件。一切正常但我没有收到gmail上的电子邮件。类似的PHP脚本我以前发布电子邮件没有弹出,它工作。
<?php
if(isset($_POST['submit'])){
$to = "myemail@gmail.com";
$from = $_POST['email'];
$first_name = $_POST['name'];
$message = $first_name . " wrote following:" . "\n\n" . $_POST['message'];
mail($to,$from,$message);
}
?>
答案 0 :(得分:1)
简单:您没有名为&#34的元素;提交&#34;在您的表单中,因此您的if()
测试始终失败
HTML表单中的id
!= name
; 含义,id
不等于name
。
一个简单的解决方法:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
... form was submitted ...
}
但是这个代码在任何情况下都很糟糕。您永远不应该只使用客户端验证。它太容易绕过了。 始终在服务器上验证/验证。
答案 1 :(得分:0)
您应该将表单中的操作设置为服务器中操作的URL。