繁体   English   中英

PHP如何使用Ajax提交表单

[英]PHP how to form submit using ajax

我正在尝试一个简单的ajax请求,不需要在提交时刷新页面。 但是我认为我做错了。 任何帮助将非常感激。

HTML / JS页面

<script>
    $(function () {
        $('form#person').on('submit', function(e) {
            $.ajax({
                type: 'post',
                url: 'addAPerson.php',
                data: $(this).serialize(),
                success: function (o) {
                          =====>    console.log(o); <=== I TRIED DOING THIS BUT NOTHING IS PRINTED
                    alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
                }
            });
            e.preventDefault();
        });
    });     
</script>

<form id="person" action="addAPerson.php" method="post">
  Firstname: <input name="fname" />
  Lastname: <input name="lname" />
  <input type="reset" style="float:right"name="cancel" value="cancel"/>
  <input type="submit" name="submit" value="save"/>
</form>

addAPerson.php

<?php
  $fname = $_POST['fname'];
  $lname =$_POST['lname'];
  $con = mysql_connect("localhost","root","");
  mysql_select_db("person",$con);
  $sql = "INSERT INTO person(firstname, lastname) VALUES('$fname', '$lname')";

  mysql_close();
?>

如果页面上有多个表单,则需要更改:

$('form').serialize(),

至:

$(this).serialize(),

否则,它将在此脚本的参数中包括来自所有表单的字段。

我还建议PHP回显某些内容以指示它是否成功,然后可以显示AJAX成功函数。

您还应该清理脚本的输入,并最好使用参数化查询将mysql_xxx函数转换为mysqli_xxx或PDO。

以下是我根据您的代码进行的测试。 我在那里做了一些修改。 首先,我放入jQuery链接,并在每个文本框中添加“类型”。

<html>
<head>
    <script src="./jquery-1.9.1.min.js"></script>
    <script>
        $(function () {
            $('form#person').on('submit', function(e) {
                $.ajax({
                    type: 'post',
                    url: 'test.php',
                    data: $('form').serialize(),
                    success: function () {
                        alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
                    }
                });
                e.preventDefault();
            });
        });     
    </script>
</head>
<body>
<form id="person" method="post">
  Firstname: <input name="fname" type="text" />
  Lastname: <input name="lname" type="text" />
  <input type="reset" style="float:right"name="cancel" value="cancel"/>
  <input type="submit" name="submit" value="save" />
</form>
</body>

这是PHP代码。 不用浪费数据库,我只是回显一个字符串。 当我单击“保存”按钮而不刷新页面时,可以看到警报。

<?php echo "success"; ?>

这是您要求的替代方法。 他们提供了源代码,您可以下载它们并在本地进行测试。

http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

暂无
暂无

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

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