提交HTML数据并保持在同一页面上

时间:2015-07-23 16:20:29

标签: php mysql

我有一个表单页面

<html>
<body>
    <form action="insert.php" method="post">
        App Name: <input type="text" name="fname" /><br><br>
        App ID: <input type="text" name="lname" /><br><br>

        <input type="submit" name="SubmitButton"/>
    </form>
</body>
</html>

这是php页面:

<html>
<body>
<?php
    $con = mysql_connect("xxx","xxx","xxx");
    if (!$con)
    {
      die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("db", $con);         
    $sql="INSERT INTO app (fname, lname) VALUES('$_POST[fname]','$_POST[lname]')";

    if (!mysql_query($sql,$con))
    {
      die('Error: ' . mysql_error());
    }

    echo "1 record added";

    mysql_close($con)
?>
</body>
</html>

现在,我希望它在与表单相同的页面上显示1 record added,而不是将表单发送到带有它的新insert.php页面。基本上,我希望提交表单保留在同一页面中,可能会弹出一条新消息,表明它已经有效。

我已经在stackoverflow上查看了一些答案,比如使用

if(isset($_POST['SubmitButton']))

但它不起作用。也许我说错了或者用得不对,但有人可以帮我搞清楚吗?

1 个答案:

答案 0 :(得分:0)

只需将其作为自己的动作,并设置if $_POST['submit']以添加记录,您可以将它们放在同一个文件中。如果您希望在不刷新页面的情况下这样做,则需要使用AJAX。

<html>
<body>
<?php
if (isset($_POST['SubmitButton'])) {
    $con = mysql_connect("xxx","xxx","xxx");
    if (!$con) {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("db", $con);

    $sql="INSERT INTO app (fname, lname)
    VALUES
    ('$_POST[fname]','$_POST[lname]')";

    if (!mysql_query($sql,$con)) {
        die('Error: ' . mysql_error());
    }
    echo "1 record added";

    mysql_close($con)
}
?>


<form action="" method="post">
App Name: <input type="text" name="fname" /><br><br>
App ID: <input type="text" name="lname" /><br><br>

<input type="submit" name="SubmitButton"/>
</form>
</body>
</html>

此外,mysql_* 已弃用,因此您应该考虑转换为PDO或MySQLi以避免SQL注入!