Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用数据库中的数据预填充web表单_Php_Mysql_Forms - Fatal编程技术网

Php 如何使用数据库中的数据预填充web表单

Php 如何使用数据库中的数据预填充web表单,php,mysql,forms,Php,Mysql,Forms,我有一个表单(实际上是4个连续页面上的4个不同表单,但效果相同),用户可以填写该表单来注册网站。表单中有许多(100+)项,包括文本框、范围,但大多数是复选框 一旦用户注册,我希望他们能够通过自定义主页上的简单“编辑”链接编辑他们的首选项。我的想法是,只需再次向他们显示注册表单,但这一次,他们将使用与我的数据库中的用户帐户链接的数据进行预填充 这是否与包含要传递到表单页面的POST值的“编辑”链接一样简单: http://www.mysite.com/something.php?edit=tru

我有一个表单(实际上是4个连续页面上的4个不同表单,但效果相同),用户可以填写该表单来注册网站。表单中有许多(100+)项,包括文本框、范围,但大多数是复选框

一旦用户注册,我希望他们能够通过自定义主页上的简单“编辑”链接编辑他们的首选项。我的想法是,只需再次向他们显示注册表单,但这一次,他们将使用与我的数据库中的用户帐户链接的数据进行预填充

这是否与包含要传递到表单页面的POST值的“编辑”链接一样简单:

http://www.mysite.com/something.php?edit=true
然后在表单页面的php中检查该值,如果edit为
true
,则在每个表单项中设置值

我之所以反复检查这个问题,是因为它似乎需要大量的代码来遍历表单中的每一项,并将其值设置为数据库中的任何内容,我不想这样做只是为了稍后发现有一种更快、更少的编程密集型方法可以做到这一点


如果有助于找到替代解决方案,Im使用PDO,则通过包含用户(唯一)电子邮件地址的会话变量来标识用户,并且表单名称与数据库列名相同

您希望访问表单页面上的数据库数据,而不是以前,然后通过POST或GET提交


此外,如果您有这么多字段,您可能不希望所有字段都用HTML硬编码,而是使用一个多维数组,包含所有字段和用于创建表单的设置。这也将使用已经归属于当前用户的数据填充表单变得更加容易。

我将把表单放在一个单独的php文件中,这样它就可以被不同的php脚本重用

在这个单独的php文件中,我将设置POST变量的输入值。
例如(在本例中,我们将此文件称为myform.php)


当您使用两个不同的PHP脚本来处理注册和编辑时,还可以使验证和表单处理代码尽可能可重用。

或关联数组也可以工作,并且可能更易于维护和访问。我不确定我是否理解您将表单放入模板中的意思?想想吧“//此处加载模板”为“包括'formfile.php';“相反,我会改写我的答案。
<form action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>" method="POST">
    <input type="text" name="first_name" value="<?php echo @$_POST['first_name']; ?>" >
    <input type="text" name="last_name" value="<?php echo @$_POST['last_name']; ?>" >
    <input type="text" name="username" value="<?php echo @$_POST['username']; ?>" >
    <input type="submit" name="submit" value="<?php echo $submit_value; ?>" >
</form>
<?php
foreach($db_row_fields as $field_key => $field_value)
{
     $_POST[$field_key] = $field_value;
}

$submit_value = "Update";

include 'myform.php';
$submit_value = "Sign Up";

include 'myform.php';