【发布时间】:2014-07-31 16:54:48
【问题描述】:
弹出表单有问题。它不发送电子邮件。这是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);
}
?>
【问题讨论】:
-
你是在服务器还是本地主机上工作?
-
你有
action="#"所以它不会去任何地方。它甚至不去 PHP 脚本,更不用说电子邮件了。它。 -
线索:检查你的(PHP)条件语句;它依赖于它。
-
@CharlotteDunois 在服务器上,另一个没有弹出的联系表格很好用。
-
只是为了澄清为什么
<a id="submit" href="javascript: check_empty()">Send</a>不起作用,是因为它不被视为有效的 POST 元素。如果您使用<input type="submit" name="submit" value="Send">,它会起作用的。 @Fakt7 - PHP 正在寻找一个命名的 POST 表单“元素”。id不符合“命名”元素的条件;只是让你知道差异。这就是为什么我说您的 PHP 取决于操作。if(isset($_POST['submit'])){...}- 那会让你的代码工作。
标签: javascript php html forms email