PHP在同一页面上更新MySQL数据库
我想创建一个PHP MySQL脚本,该脚本将显示数据,然后允许用户编辑数据,但无需离开页面即可 因此,是否可以在表单中显示MySQL数据,允许用户单击并编辑它(就像普通的电子邮件表单一样),然后单击保存按钮并更新数据PHP在同一页面上更新MySQL数据库,php,mysql,Php,Mysql,我想创建一个PHP MySQL脚本,该脚本将显示数据,然后允许用户编辑数据,但无需离开页面即可 因此,是否可以在表单中显示MySQL数据,允许用户单击并编辑它(就像普通的电子邮件表单一样),然后单击保存按钮并更新数据 我知道“保存”按钮将重新加载同一页面,我只是不希望用户必须转到其他页面来编辑数据。是的,这是可能的。只用 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // now you know the form has been submit
我知道“保存”按钮将重新加载同一页面,我只是不希望用户必须转到其他页面来编辑数据。是的,这是可能的。只用
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// now you know the form has been submitted
}
<form action="" method="post">
也可以不重新加载,使用JavaScript和AJAX。使AJAX的使用更加简单。是的,这是可能的。只用
<form action="" method="post">
也可以不重新加载,使用JavaScript和AJAX。使AJAX的使用更加简单。如果不使用java脚本(AJAX),可以使用$\u请求。。并使用meta将用户发送到sql列表页面。 例如:
<?php
if($_REQUEST['do']=="showform"){
///// Show insert form
echo "<form action=\"test.php\" method=\"get\" enctype=\"text/plain\">
<input type=\"text\" name=\"name\" />
<input type=\"hidden\" value=\"insert\" name=\"do\" />
<input type=\"submit\" value=\"Add\" />
</form> " ;
$sql=$db->query("select * from names order by id decs ");
while($r=mysql_fetch_array($sql)){
///
/// print your data
///
}
}
if($_REQUEST['do']=="insert"){
$name=mysql_real_escape_string($_GET['name']);
/// call your insert function here
/// for Example
$sql=$db->query(" insert into names(name) values('$name')");
if($sql){///
echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=test.php?do=showform'>";
}
else{
echo "erorr";
}
}
?>
如果不使用java脚本(Ajax),可以使用$\u请求。。并使用meta将用户发送到sql列表页面。
例如:
<?php
if($_REQUEST['do']=="showform"){
///// Show insert form
echo "<form action=\"test.php\" method=\"get\" enctype=\"text/plain\">
<input type=\"text\" name=\"name\" />
<input type=\"hidden\" value=\"insert\" name=\"do\" />
<input type=\"submit\" value=\"Add\" />
</form> " ;
$sql=$db->query("select * from names order by id decs ");
while($r=mysql_fetch_array($sql)){
///
/// print your data
///
}
}
if($_REQUEST['do']=="insert"){
$name=mysql_real_escape_string($_GET['name']);
/// call your insert function here
/// for Example
$sql=$db->query(" insert into names(name) values('$name')");
if($sql){///
echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=test.php?do=showform'>";
}
else{
echo "erorr";
}
}
?>
我建议不要将您的表单发布到用于显示数据的页面。如果用户点击浏览器的刷新按钮,表单将再次发送,这可能会做您不想做的事情
使用:将表单发布到用于处理表单的页面,然后此页面必须发送标题以重定向到显示页面。我建议不要将表单发布到用于显示数据的页面。如果用户点击浏览器的刷新按钮,表单将再次发送,这可能会做您不想做的事情
使用:将表单发布到用于处理表单的页面,然后此页面必须发送一个标题以重定向到显示页面。无需使用Ajax,只需提交到处理显示和更新的同一PHP的简单表单。对于绝对无需重新加载页面的方法,您需要使用Ajax。否则,请坚持@alfasin的建议,不要忘记单击左侧的勾号接受一些答案;-)不需要Ajax,只是一个简单的表单,提交给处理显示和更新的同一个PHP。对于完全不需要重新加载页面的方法,您将需要使用Ajax。否则,请坚持@alfasin的建议,不要忘记单击左侧的勾号接受一些答案;-)我是否可以使用我无论如何都会使用的update.php?是的,action=”“
表示数据将发送到同一页面。在update.php上,您可以通过if($\u POST)
检查表单是否已发送。@user1586258是,但更新后,您需要打印重定向标题-标题(“位置:[pageYouWantToGoTo.php]”代码>。在同一页上进行所有处理会更有效。@Matt这不是必需的。取决于您使用的代码。@PeterDraexDräxler我同意,但OP问他是否可以使用原始的update.php(我假设)是一个单独的文件。我是否可以使用与我本来使用的相同的update.php?是的,action=“”
意味着数据将发送到同一页面。在update.php上,您可以通过if($\u POST)
检查表单是否已发送。@user1586258是,但更新后,您需要打印重定向标题-标题(“位置:[pageYouWantToGoTo.php]”代码>。在同一页上进行所有处理会更有效。@Matt这不是必需的。取决于您正在使用的代码。@PeterDraexDräxler我同意,但OP问他是否可以使用原始的update.php,它(我假设)是一个单独的文件。您不应该在SQL中使用字符串插值。你应该使用占位符来保证你的SQL被正确转义。塔德曼先生,谢谢你,这只是一个简单的例子,不是完美的例子。你永远不应该在SQL中使用字符串插值。你应该使用占位符来保证你的SQL被正确转义。塔德曼先生谢谢你,这只是一个简单的例子,不是完美的例子。