我想创建一个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模式:将您的表单发布到用于处理它的页面,然后此页面必须发送标题以重定向到您的显示页面。