我正在开展一些已执行初始搜索的功能,正在显示配置文件详细信息的子集。这很好。
然后会有一个名为“查看完整个人资料”的链接,如果点击该链接,则会返回整个个人资料。
我使用了硬编码的ID,但我不确定如何从信息子集中传递配置文件的ID?
我实际上并不知道这个值(配置文件的ID)当前是否可供我访问,以便在有意义的情况下我可以将其传入?
在个人资料详细信息的子集中,我已经包含了一个隐藏字段,其中包含我想要传入的ID,但我不确定是否可以使用它?
相关代码发布在下方。
SUBSET-PROFILE.HTML.PHP
<div id="Profile" class="Profile" >
<h1 class="margin-top">Search Results</h1>
<?php if (isset($results)): ?>
<?php foreach ($results as $result): ?>
<ol class="coach-display">
<li class="left image">
<img src="<?php if (!empty($result['filename'])) echo('?action=view&id=' . $result['id']); else echo "/img/profile_coming_soon.jpg" ?>" width="80" height="80" />
</li>
<li class="listleft">First Name:</li>
<li><?php htmlout($result['firstname']); ?></li>
<li class="listleft">Last Name:</li>
<li><?php htmlout($result['lastname']); ?></li>
<li class="listleft">Constituency:</li>
<li><?php htmlout($result['constituency']); ?></li>
<li class="listleft">Qualifications:</li>
<li><?php htmlout($result['qualifications']); ?></li>
</ol>
<input type="hidden" name="id" value="<?php htmlout($result['id']); ?>">
<a href="?more">View full profile</a>
<?php endforeach; ?>
<?php endif; ?>
</div>
的index.php
if (isset($_GET['more']))
{
try
{
$sql = "SELECT id, firstname, lastname, area, county, constituency, qualifications, bio, monday, tuesday, wednesday, thursday, friday, saturday, sunday,
filename, mimetype
FROM pt
WHERE id = 6";
$s = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching pt details.' . $e->getMessage();;
include 'profiles.html.php';
exit();
}
你可以在INDEX.PHP中看到我将值硬编码为6.这是我需要动态的值,取决于以前查看的配置文件子集。
感谢您的时间和帮助。
答案 0 :(得分:3)
有很多方法可以做到这一点,但最简单的可能是在网址中传递id:
<a href="?more&id=<?php htmlout($result['id']); ?>">View full profile</a>
答案 1 :(得分:1)
变化
<a href="?more">View full profile</a>
到
<a href="?more&id=<?php htmlout($result['id']); ?>">View full profile</a>
现在您可以使用$_GET['id']
..
答案 2 :(得分:0)
我认为ID也来自GET param。
if (isset($_GET['more']))
{
try
{
$sql = "SELECT id, firstname, lastname, area, county, constituency, qualifications, bio, monday, tuesday, wednesday, thursday, friday, saturday, sunday,
filename, mimetype
FROM pt
WHERE id = ?";
$sth = $pdo->prepare( $sql );
$sth->execute(array( $_GET['id'] ));
$s= $sth->fetchAll();
}
注意到我使用了不同的PDO功能。您需要变量绑定以避免SQL注入(或良好的过滤)。
http://php.net/manual/en/pdo.prepare.php
的更多详情PS。尝试抽象你的输入。永远不要在你的逻辑中直接使用$ _GET,$ _POST,$ _COOKIE等。