我想在我的网站上创建一个用于查看用户个人资料的页面。当用户首次访问该页面时,我希望它显示自己的个人资料。但我想放入一个下拉菜单或其他能够让他们查看其他用户个人资料的内容。我还没有开始创建这个,但我只是想知道我想要实现的目标是否可行。
我正在考虑做的是有一个php变量,它是$UserID
或其他东西。
以$UserID
开头将等于查看网页ID的当前用户,例如1为管理员。
然后我会通过变量$UserID
从数据库中获取所有数据。
但是,为了查看其他用户的个人资料,我想根据下拉列表中选择的用户名更改$UserID
变量。
e.g。如果dropdownuser = Test3,则$UserID
= 5.
然后它会显示Test3的用户个人资料。
我有这个正确吗?
答案 0 :(得分:0)
通常这是在两个单独的页面上完成的:当前用户的个人资料(我的个人资料)和一般个人资料页面。
在我的个人资料页面上,您使用登录用户的ID,例如$_SESSION['user-id']
,在常规个人资料页面上,您可以使用下拉列表中的ID或来自网址的任何内容,例如$_GET['user-id']
。
答案 1 :(得分:0)
正确。查询数据库时,传入一个ID,以便获取该特定ID的信息
$select = $db->query('SELECT id, name, info FROM table WHERE id = :id');
$select->execute(array(':id' => $_POST['id']));
你的HTML将是
<form method="post">
<select name="id">
<option value="1">Person 1</option>
<option value="2">Person 2</option>
</select>
<input type="submit" value="Select user" />
</form>
答案 2 :(得分:0)
基本上,您可以实现您想要的功能,只需注意用户观看页面时PHP脚本不活动。它只在页面加载(或重新加载)时起作用。因此,当用户更改下拉列表中的选定项目时,您需要重新加载页面。这很容易实现,只需在onchange
事件处理程序中进行。
还有另一种方法:AJAX。您可以在页面加载时调用服务器端,但在某些内部页面事件(如下拉列表选择的索引更改)上调用。然后页面不会重新加载,但您需要正确处理AJAX响应。对于服务器,它就像正在加载新页面。详细了解ajax。