jQuery,PHP和AJAX问题 - php

因此,我已经阅读了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($…