我有一个电子邮件输入字段和一个提交按钮,按下时我想要一个文本字段来改变,告诉用户他们是订阅的。由于某种原因,电子邮件字段没有中继到输入电子邮件的php文件。但是我知道php正在执行,因为它每次只给我一个订阅错误。还有一个像这样的问题在这里问,但解决方案没有用。
我认为将<form>
和<button>
组合使用是一个问题,但我不知道执行此操作的正确方法,任何想法?
html:
<html>
<head>
<link rel="stylesheet" href="mystyle.css">
<title>Community Sound</title>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax({url: "phEmail.php", success: function(result){
$("#div1").html(result);
}});
});
});
</script>
<body>
<!-- Subscription -->
<div class="container">
<div class="no-result vertical-align-outer">
<div class="vertical-align">
<form method="post" >
<input name="email" class="email glowing-border" type="email" placeholder="Enter your email address ...">
<button type="button" onclick="return getData()" class="emailbtn">Subscribe</button>
</form>
</div>
</div>
</div>
<div id="div1">Not Subscribed</div>
</body>
</head>
PHP:
<?php
$to = "garvernr@mail.uc.edu";
$from = "newsubscription@samplepackgenerator.com";
$headers = "From: " . $from . "\r\n";
$subject = "New subscription";
$body = "New user subscription: " . $_POST['email'];
if( filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )
{
if (mail($to, $subject, $body, $headers, "-f " . $from))
{
echo 'You have been added to our mailing list!';
}
else
{
echo 'There was a problem with your e-mail (' . $_POST['email'] . ')';
}
}
else
{
echo 'There was a problem with your e-mail (' . $_POST['email'] . ')';
}
?>
答案 0 :(得分:1)
您可以通过表单发送表单数据到另一个页面,也可以发出ajax调用。目前你在中间尝试一些东西并且有两个onClick
个处理程序,一个在控件本身onclick="return getData()"
中,另一个在jQuery中添加。
第一个完全丢失,第二个从上面(jQuery AJAX)不发送任何数据。
以这种方式改变:
....
<button type="button" id="sendbutton" class="emailbtn">Subscribe</button>
....
你的阿贾克斯:
$(document).ready(function(){
$("#sendbutton").click(function(){
$.ajax({
url: "phEmail.php",
data: { "email": $('#sendbutton').val() },
success: function(result){
$("#div1").html(result);
}});
});
});
当您熟悉它时,您可以考虑一次性序列化整个表单,这将更通用。看看那个
的jQuery文档答案 1 :(得分:0)
问题是您的表单没有发送任何数据。
您需要修改您的ajax调用并添加数据arrtibute。
$("button").click(function(){
$.ajax({
url: "phEmail.php",
data:{email: $("input.email").value},
success: function(result){
$("#div1").html(result);
}
});
});