PHP在同一页面上更新MySQL数据库

PHP在同一页面上更新MySQL数据库,php,mysql,Php,Mysql,我想创建一个PHP MySQL脚本,该脚本将显示数据,然后允许用户编辑数据,但无需离开页面即可 因此,是否可以在表单中显示MySQL数据,允许用户单击并编辑它(就像普通的电子邮件表单一样),然后单击保存按钮并更新数据 我知道“保存”按钮将重新加载同一页面,我只是不希望用户必须转到其他页面来编辑数据。是的,这是可能的。只用 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // now you know the form has been submit

我想创建一个PHP MySQL脚本,该脚本将显示数据,然后允许用户编辑数据,但无需离开页面即可

因此,是否可以在表单中显示MySQL数据,允许用户单击并编辑它(就像普通的电子邮件表单一样),然后单击保存按钮并更新数据


我知道“保存”按钮将重新加载同一页面,我只是不希望用户必须转到其他页面来编辑数据。

是的,这是可能的。只用

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被正确转义。塔德曼先生谢谢你,这只是一个简单的例子,不是完美的例子。