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


PHP update MySQL database on same page

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

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

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

是的,这是可能的。只需使用

<form action="" method="post">

也可以不重新加载 - 使用 JavaScript 和 AJAX。 jQuery使AJAX的使用变得更加简单。

如果你

不使用java script(Ajax),你可以使用$_REQUEST..并使用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脚本的唯一方法

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
   // now you know the form has been submitted 
}

我建议不要将您的表单发布到用于显示数据的页面上。如果用户点击浏览器的刷新按钮,表单将再次发送,这可能会执行您不希望的操作。

使用POST/REDIRECT/GET模式:将您的表单发布到用于处理它的页面,然后此页面必须发送标题以重定向到您的显示页面。