我已经创建了一个联系人页面和一个单独的PHP页面来接收发布的数据。我想让PHP在弹出窗口中打开。我已经尝试了在线方法,但没有任何成功,我可以使弹出窗口出现,但我不能让PHP发送数据。
<!------Contact Page------->
<form method='post' action='sendemail.php' >
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" placeholder="Type Here" id="email">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea>
<label>Human Verification</label>
<input name="human" placeholder="2 + 2 = ? " id="human">
<input id="submit" name="submit" type="submit" value="Submit">
</label>
</form>
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = $email;
$to = 'my@email.com';
$subject = 'New Message';
$human = $_POST['human'];
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<h4>Your message has been sent!</h4>';
} else {
echo '<h4>Something went wrong, go back and try again!</h4>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<h4>You answered the anti-spam question incorrectly!</h4>';
}
} else {
echo '<h4>You need to fill in all required fields!!</h4>';
}
}
?>
发布于 2013-11-17 02:10:08
我认为,如果php脚本在表单的同一页中,只是在隐藏的div中,那么您必须使用php self like来确定操作的目标。
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
因此变量POST设置正确。
如果需要在弹出窗口中发布,可以使用ajax发送日期,或者使用jquery在隐藏的div中加载外部页面,如下所示:
$('#submit').click(function(){
load(external.php); //where your script is
});
在这两种情况下,它都应该可以工作。
发布于 2013-11-17 02:33:16
由于您正在提交内容并对另一个页面执行POST/GET请求,因此该模式将不会像您当前使用的那样工作。因为您正在重定向到PHP代码。您应该使用Javascript来显示弹出窗口。
也许添加一个onclick
到你的提交按钮?
<input type='submit' onclick='alert("Message sent!")' />
另一种选择是通过jquery ($.ajax();
)对PHP文件进行Ajax调用,然后使用您喜欢的任何库来显示所需的弹出窗口。也许检查Jquery或Bootstrap的模式可以给你一个提示,如果你想要复杂的方法。
<input type='submit' onclick='sendMessage()' />
function sendMessage(){
$.ajax({
//your stuff
});
$('.message').modal();
}
https://stackoverflow.com/questions/20021667
复制相似问题