我有一个php表单和很多标记,所以我需要重复相同的表单来创建一个新的页面条目和相同的编辑,所以例如现在正在做的是
if($_GET['page'] == 'hello') {
//A whole lot of markup goes here
<form method="post">
<input type="text" name="whatever" />
<input type="submit" name="create_new" />
</form>
} elseif ($_GET['page'] == 'edit_hello') {
//Same form markup is here, only change is the retrieved
//data values are echo'ed out in respective fields
$query = mysqli_fetch_array(mysqli_query(...));
<form method="post">
<input type="text" name="whatever" value="<?php echo $query['column_name']; ?>" />
<input type="submit" name="create_new" />
</form>
}
所以任何想法如何使用相同的代码创建新条目以及更新表单值
答案 0 :(得分:1)
使用变量并为其指定一个空字符串的默认值。
if($_GET['page'] == 'hello') {
$whatever = "";
} elseif ($_GET['page'] == 'edit_hello') {
$query = mysqli_fetch_array(mysqli_query(...));
$whatever = $query['column_name'];
}
<form method="post">
<input type="text" name="whatever"
value="<?php echo htmlspecialchars($whatever); ?>" />
<input type="submit" name="create_new" />
</form>
请注意,我还为您添加了适当的转义功能,以便您可以避免XSS攻击。
答案 1 :(得分:0)
这样的事情应该有效(未经测试)
$value = '';
if ($_GET['page'] == 'edit_hello') $value = $query['column_name'];
if (in_array($_GET['page']), array('hello', 'edit_hello')) { ?>
<form method="post">
<input type="text" name="whatever" value="<?php echo $value; ?>" />
<input type="submit" name="create_new" />
</form>
<?php } ?>
答案 2 :(得分:0)
我不确定我理解你的问题是对的。 您想使用相同的表单来创建新条目或编辑,对吧? 简单的方法就是这样,但还有很多其他方法。
如果您为编辑模式创建表单,则在其上添加隐藏字段。在对表单发布请求后,您可以检查此变量。 Remenber:您需要更新一些密钥,以便更新正确的数据库记录。
if (isset($_POST["variable"]))
{
//updateaction
}
else
{ //insertaction
}
亲切的问候