php - 防止表单刷新页面Javascript

标签 php javascript jquery ajax

我很不擅长 javascript,我正在尝试进行 AJAX 调用,但我从表单字段中获取值,它只是刷新页面,甚至无法观察 AJAX 调用是否成功。

这是我的 HTML:

<form class="form-horizontal" id="subscribe-form" name="subscribe-form" onSubmit="return subscribe();">
    <fieldset>
        <p>
                         Subscribe
        </p>
        <div class="input-prepend input-append">
           <input name="subscribwEmail" class="span2" id="InputEmail" type="email" placeholder="Email">
           <input type="submit" class="btn btn-inverse" />
        </div>
    </fieldset>
</form>

JS:

function subscribe() {
    var emailForm = $('#subscribwEmail').val();
    $('#subscribe-form').hide(); // hide email form
$('#subscribeDiv').prepend('<img id="process" src="http://www.mydomain.com/assets/img/process.gif" />')

$.ajax({
    type: "POST", 
    url: "../../actions/ajax-subscribe.php",
    data: {
        email: emailForm
    },
    dataType: "json",
    success: function (data) {
        if (data[0] == 1) { // test if response was 1 or 2

            $('#process').hide(); // hide img

            $('#subscribeDiv').append('<p>Thank you for subscribing!</p>');
        } else {

            $('#process').hide(); // hide img

            $('#subscribeDiv').append('<p>There was an error subscribing the email.</p>');
        }
    }
})

};

ajax-subscribe.php

<?php
include ('phpfunctions.php');

$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME) or die('ERROR WITH SQL CONNECTION CONTACT ADMIN');

$email = cleanString($con, $email);

$query = "INSERT INTO `subscribers` (`email`, `ip`) VALUES ('$email', '$ip');";

if ($result = mysqli_query($con, $query)) {

echo json_encode(1); // all ok inserted
} else {

echo json_encode(0); // failed
}

?>

最佳答案

您没有取消点击事件,所以表单提交。

return false; 添加到您的 subscribe 方法的末尾。

关于php - 防止表单刷新页面Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16720734/

相关文章:

javascript - IE 7 "stop running this script"错误使用 jQuery

php - Whois 服务器不返回结果?

php - Doctrine 2 使用查询生成器删除

php - 如何在官方Elasticsearch PHP客户端中设置代理?

javascript - 具有动态列的阵列的 knockout 性能问题

javascript - 在 javascript 中将新成员显示到 html 显示列表

jquery - 全日历在移动中改变颜色

javascript - 让PHP跑在.js页面上不可行吗?

javascript - 对于 IOS Phonegap 应用程序,是否可以包含非应用程序本地的 javascript 文件

javascript - 如何在移动浏览器(Chrome)中禁用 onclick 文本突出显示?