我有一个表单页面
<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']))
但它不起作用。也许我把它放错了或者用错了,但是有人能帮我弄清楚吗?
将其设置为一个动作,并设置一个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注入!