2009-12-17 46 views
0

我有一个表格。加载页面时,必须检查:打开页面并填写表格

if ($_SESSION[WorkMode] == 'UPDATE') 

然后用数据库中的值填充表单,否则打开一个空白表单。

如果我在不同的PHP文件中获取结果并在加载时调用这个.php文件,如何填充表单。

回答

4

设置包含表单值的变量,然后包含您所使用表单的“模板”。

文件1:

<?php 
$res = mysql_query(".."); 
if($res) { 
    $row = mysql_fetch_assoc($res); 
    $name = $row['name']; 
    $birthday = $row['birthday']; 
    ... 
    include('form.tpl'); 
} 

文件2(form.tpl)

<form action=""> 
    <input type="text" name="username" value="<?php isset($name)?$name:""; ?>" /> 
    .. and so on 
</form> 

Alternatetively你可以使用一个完全成熟的模板引擎诸如Smarty为你做这项工作。

最良好的祝愿,
费边

+0

这样做的一些潜在问题: 1.如果MySQL查询失败,则根本无法显示表单。这可能是一个问题,取决于失败的查询是否可接受的行为。 2.根据您预先填写的数据,您可能需要考虑在显示之前通过'htmlspecialchars'或类似的方式运行它。完全取决于您展示的内容以及存储方式(在进入数据库之前是否进行过消毒处理?)。 – 2009-12-17 09:49:03

+0

这就是我称之为“示例”的原因。安全,编码,转换并不是他的问题的一部分,但是谢谢你补充一点。 – halfdan 2009-12-17 10:02:20

0
$formvalue = NULL; 
if ($_SESSION[WorkMode] == 'UPDATE') 
    $formvalue = $some_database_value; 
echo '<input type="text" name="myname" value="'.$formvalue .'" />'; 
+0

但如何填充$ formvalue? – RKh 2009-12-17 09:28:10

+0

查询数据库 – marcgg 2009-12-17 09:29:17

+1

@RPK与使用数据库中的数据填充任何其他变量的方式相同(如果您不知道如何执行该操作,那么我建议您阅读PHP教程中的介绍性SQL,而不是问HOWTO风格问题) – Quentin 2009-12-17 09:30:07