因此,我已经阅读了jQuery AJAX页面和一堆教程,但是在这里有一个小问题。
没有错误或警告,只是空白页。
当用户使用电子邮件地址填写新闻通讯订阅测试字段时,并且当您单击提交时,页面会刷新,我正在尝试发送电子邮件! (第一个问题),它无法在页面上显示任何内容(第二个问题),您所看到的只是空白页面。没有收到电子邮件。
我已经分别测试了电子邮件脚本,效果很好。我已经在不同的网站上使用了几个月,所以我知道它可以工作。
我尝试过在jQuery等环境中进行更改,但是没有任何方法可以解决此问题。
jQuery的:
$(function () {
var txt = $('.email').val();
$.ajax({
url: 'index.php',
type: 'post',
data: {
email: txt
},
success: function (data) {
alert(data);
},
error: function (err, req) {
$('#Response').html({
"Somethin' got broked. Please try again."
});
}
});
});
PHP:
<?php
if($_POST["email"] != null)
{
require_once "Mail.php";
$email = $_POST["email"];
// Send it.
$from = "[email protected]";
$to = $email;
$subject = "Newsletter Subscription Request.";
$body = "Thank you for subscribing to our newsletter!";
$host = "mail.X.com.au";
$username = "[email protected]";
$password = "X";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
}
?>
HTML:
<h4 id="Response">Stay informed. Subscribe to our Newsletter!</h4>
<form class="newsletterForm" action="index.php" method="post">
<input type="text" class="email" name="email" />
<input type='submit' class="btn" value="Subscribe" />
</form>
有人可以帮我弄清楚为什么这行不通吗?
谢谢
参考方案
当此类操作不起作用时,我要做的第一件事是在Chrome开发者工具窗口中观看页面调用。
就您的代码而言,页面刷新的原因是因为正在提交表单。为了避免这种情况的发生,您必须捕获表单提交:
$("form").submit(function() {
// Do ajax
return false; // Keeps the form from submitting
});
一旦有了适当的设置,您应该会获得更好的结果。
但是,我要提醒您,让PHP电子邮件发送表单在不首先使用ajax的情况下正常工作要容易得多,只需处理常规表单提交即可。一旦可行,然后将ajax绑在其顶部。
PHP:将数组值加在一起 - php我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…
PHP JQuery复选框 - php我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(…
如何从php中获取datatables jQuery插件的json数据 - php我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…
PHP-正则表达式删除引号并添加大括号? - php好吧,我不愿承认这一点,但是我对REGEX感到很困难,我永远找不到关于如何设置表达式的不错的教程。所以说我有这样的事情context['something'] 我想将所有事件更改为context[something] 那我有' . $var . ' 我想将所有事件更改为{var} 这是当前的概念,但是我在正则表达式部分…
PHP:将元素ID作为哈希添加到Facebook共享链接 - php在this page上,我有一堆显示为精美框的mp3文件。每个框都有一个Facebook分享按钮。我想将每个框ID((mp3jWrap_0, mp3jWrap_1等)作为哈希添加到其Facebook共享链接,以便每次从Facebook访问共享项目时,URL都包含该项目的哈希。为此,我编写了代码:<?php $actual_link = (isset($…