根据下拉列表中选择的内容更改php变量


Change php variable depending on what selected in dropdown

我想在我的网站上创建一个页面,用于查看用户配置文件。当用户第一次访问该页面时,我希望它显示他们自己的个人资料。但我想放一个下拉菜单或其他东西,让他们能够查看其他用户的配置文件。我还没有开始创造这个,但我只想知道我想实现的目标是否有可能实现。

我想做的是有一个php变量,它可能是$UserID或其他什么。

$UserID开始将等于查看页面id的当前用户,例如管理员id为1。

然后,我将通过变量$UserID从数据库中获取所有数据。

但为了查看其他用户的配置文件,我想根据下拉列表中选择的用户名更改$UserID变量。

例如,如果下拉用户=Test3,则$UserID=5。

然后它将显示Test3的用户配置文件。

我说对了吗??

通常这是在两个独立的页面上完成的:当前用户的配置文件(我的配置文件)和常规配置文件页面。

在我的个人资料页面上,你使用登录用户的ID,类似于$_SESSION['user-id'],在普通个人资料页面中,你使用下拉列表中的ID或URL中的任何内容,类似于$_GET['user-id']

正确。当你查询数据库时,输入一个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>

基本上,您可以实现您想要的,只需注意,当用户观看页面时,PHP脚本是不活动的。它只在页面加载(或重新加载)时工作。因此,当用户在下拉列表中更改所选项目时,您需要重新加载页面。这很容易实现,只需在onchange事件处理程序中实现即可。

还有另一种方法:AJAX。您可以不在页面加载时调用服务器端,而是在某些内部页面事件(如下拉选择的索引更改)中调用服务器端。然后页面将不会重新加载,但您需要正确处理AJAX响应。对于服务器来说,这就像正在加载一个新页面。阅读更多关于ajax的信息。