我有一个表单页面
<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']))
但它不起作用。也许我说错了或者用得不对,但有人可以帮我搞清楚吗?
答案 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注入!