0

我有一个 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>
}

所以知道如何使用相同的代码来创建新条目以及更新表单值

4

3 回答 3

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 攻击。

于 2013-01-14T18:54:31.303 回答
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 } ?>
于 2013-01-14T18:55:08.027 回答
0

我不确定我是否正确理解您的问题。您想使用相同的表单来创建新条目或编辑,对吗?例如,简单的方法可以是这样,但还有许多其他方法。

如果您为编辑模式创建表单,则在其上添加一个隐藏字段。在表单的发布请求后,您可以检查此变量。记住:您需要更新一些键,以便更新正确的数据库记录。

if (isset($_POST["variable"]))
{
//updateaction
}
else 
{ //insertaction 
}

亲切的问候

于 2013-01-14T18:58:48.557 回答