繁体   English   中英

如何使用Javascript(Ajax)将表单数据发布到外部PHP文件?

[英]How to POST form data to external PHP file using Javascript (Ajax)?

我正在创建具有登录功能的Web应用程序。 服务器端工作(PHP文件接受输入,并对照用户数据库对其进行检查,然后返回Error:Missing-InputError:Invalid-CredentialsSuccess:Logged-In )。 只需简单地将其发布到PHP文件,该方法就可以完美地工作,但是我需要应用程序在提交表单时以静默方式发布数据,然后提醒“再试一次”或将页面更改为应用程序的主屏幕( app/index.html )。 我使用过(以及更改和更改)的Javascript如下(表格:

var frm = $('#signinform');
frm.submit(function (ev) {
    $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function(data) {
            if(data.includes("Success:Logged-In")){
                localStorage.login="true";
                window.location.href = "app/index.html";
            }else if(data.includes("Error:Missing-Input")){
                alert("Login error! You may have missed one of the fields.");
            }else if(data.includes("Error:Invalid-Credentials")){
                alert("Login error! You have entered your email or password incorrectly.");
            }
        }
    });
        ev.preventDefault();
});

HTML表单如下(signin.html):

<div id="container">
    <h1>Sign In</h1><hr><br><br>
    <form id="signinform" method="post" action="https://somedomain.com/api/endpoint/signin.php">
        <div style="text-align:left; margin-left: 15px;">Email:</div><input name="email" id="email" type="email" placeholder="email@domain.com" required="required" /><br><br>
        <div style="text-align:left; margin-left: 15px;">Password:</div><input name="password" id="password" type="password" placeholder="*********" required="required" /><br>
        <br><br><input type="submit" id="login" value="Submit" /><br><br>
        <p>No account? <a href="signup.html">Click here to sign up!</a></p>
    </form>
</div>
<script src="formhandle.js"></script>

我知道这是一百万个和另一个问题,博客文章,教程等的重复。我什么都做不了。

编辑:当前的JS代码似乎被忽略。 表单将发布到自身,并忽略AJAX网址。 我尝试在HTML的顶部和底部包含<script>标记。 JS中的PreventDefault也没有任何区别。

编辑2:对JS和HTML的各种更改以显示我已经尝试过的内容,尽管现在它直接用于远程服务器(仍然忽略preventdefault)。

现在,问题中的代码可以按预期工作。 我缺少jquery lib声明,我在网上看到许多与此问题有关的问题,它们编写的Javascript很好,但是由于某种原因代码失败了。 如果有这样的人浏览此帖子,则解决方法是:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

在HTML页面的底部之前

<script src="myScript.js"></script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM