这是一个非常简单的问题,很可能需要一个非常简单的答案。我正在从MYSQL数据库中提取数据,并使用检索到的数据构造一个表。我正在构造一个CRUD表,最后两列是“编辑”和“删除”。我正在构建最后两列的表单如下所示:
在Welcome.php中可以找到以下内容:
<form action="delete.php" method="POST">
<input type="hidden" value="ptest"/>
<input type="submit" value="Sign Up"/>
</form>但是,我是否应该让表单的操作调用当前页面呢?
<form action="welcome.php" method="POST">
<input type="hidden" value="ptest"/>
<input type="submit" value="Sign Up"/>
</form>我对PHP非常陌生,我想确保我遵循的是正确的协议。如果这是一个更多的意见,而不是任何其他,请至少留给我你的专业意见。
非常感谢,
埃文
发布于 2011-12-04 17:39:20
你不应该。没有严格的标准。
作为一个新手,您可能会发现每个动作的单独文件更容易理解。那就去吧。
有了更多的经验,您会发现,将所有操作都放在一个文件中会使代码更短、更方便。
您必须在一个单独的文件中拥有的是表单本身。
因此,您将能够使用相同的表单来添加新记录、编辑现有记录并显示提交错误。
这里是一个一个寻呼机的例子.它没有删除,但可以给你一个大致的想法。它允许您添加、编辑和浏览记录。
代码
<?
mysql_connect();
mysql_select_db("new");
$table = "test";
if($_SERVER['REQUEST_METHOD']=='POST') { //form handler part:
$name = mysql_real_escape_string($_POST['name']);
if ($id = intval($_POST['id'])) {
$query="UPDATE $table SET name='$name' WHERE id=$id";
} else {
$query="INSERT INTO $table SET name='$name'";
}
mysql_query($query) or trigger_error(mysql_error()." in ".$query);
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
if (!isset($_GET['id'])) { //listing part:
$LIST=array();
$query="SELECT * FROM $table";
$res=mysql_query($query);
while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
include 'list.php';
} else { // form displaying part:
if ($id=intval($_GET['id'])) {
$query="SELECT * FROM $table WHERE id=$id";
$res=mysql_query($query);
$row=mysql_fetch_assoc($res);
foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);
} else {
$row['name']='';
$row['id']=0;
}
include 'form.php';
}
?>模板
form.php
<? include TPL_TOP ?>
<form method="POST">
<input type="text" name="name" value="<?=$row['name']?>"><br>
<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="submit"><br>
<a href="?">Return to the list</a>
</form>
<? include TPL_BOTTOM ?>和list.php
<? include TPL_TOP ?>
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>
<? include TPL_BOTTOM ?>https://stackoverflow.com/questions/8377152
复制相似问题