【发布时间】:2015-01-08 13:53:01
【问题描述】:
我有一个网站,用户可以在其中注册,然后使用他们的注册信息登录,这会将他们带到一个带有表单的页面,我希望能够使用他们注册时的数据预先填充表单的某些部分/已登录。
我假设由于登录功能使用会话数据,我可以找到他们的电子邮件地址并通过所述电子邮件地址识别行,然后在与该行关联的字段中提取数据。我找不到这个工作原理的例子。
一旦我能够提取数据并填充字段,目标就是拥有 2 个按钮;一个用于保存和更新数据库,以便用户可以稍后返回并完成表单,另一个按钮在所有字段填写完毕后变为活动状态,然后提交要在确认页面上打印的数据,并向数据库添加一个值表示表单已完成的字段,因此当用户重新登录时,他们将看到表单已完成并且无法再提交。
我试图通过向其中添加一个值字符串来填充其中一个字段作为测试,但我似乎无法在任何地方找到一个示例来展示它是如何工作的。这是我的表格:
<div style="float:left; width:450px;">
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;"> </div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;">SET PART #</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;">INSTALL DATE</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">1.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part1" value="<?php echo $_GET['first_name'];?>"> </div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part1-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">2.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part2"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part2-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">3.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part3"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part3-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">4.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part4"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part4-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">5.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part5"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part5-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">6.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part6"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part6-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">7.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part7"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part7-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">8.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part8"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part8-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">9.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part9"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part9-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;">10.</div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="text" id="part10"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input type="text" id="part10-install-date"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:35px;"> </div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:187px;"><input type="submit" name="save" value="Save"></div>
<div style="float:left; padding-right:7px; padding-bottom:7px; width:192px;"><input class="send" id="register" type="submit" value="Submit" disabled="disabled"></div>
</form>
</div>
更新:
我试过这个方法:
<?php
if(isset($_SESSION)){
$userEmail=$_SESSION['email'];
$userData = fetch_assoc(query("SELECT * FROM login WHERE email = '$userEmail'"));
}
$link = mysqli_connect('localhost','username','password','database'); //TODO: your connection here
function query($sql) {
return mysqli_query($link, $sql);
}
function fetch_assoc($query) {
return mysqli_fetch_assoc($query);
}
?>
并将此值添加到表单输入之一:
value="<?= $userData['first_name'] ?>">
现在出现 2 个错误:
警告:mysqli_query() 期望参数 1 为 mysqli,此行给出 null:
return mysqli_query($link, $sql);
和另一个错误: 警告:mysqli_fetch_assoc() 期望参数 1 为 mysqli_result,此行给出 null:
return mysqli_fetch_assoc($query);
【问题讨论】:
-
能否请您展示您目前编写的任何 PHP 代码?我的意思是有很多方法可以做到这一点,但很高兴看到你到目前为止所做的尝试......互联网上有大量教程可以满足你的要求。
-
我曾在标题
-
结果如何..?什么问题?有什么错误吗?
-
实际上什么也没发生。我尝试了另一种方法并将结果添加到帖子中。 @Crembo
-
您是否设置了任何 MySQL 服务器?如果是这样,您是否有任何包含数据的表格?当你回答这个问题时,我会更新我的答案,我会给出一个工作代码 sn-p..
标签: javascript php mysql forms populate