Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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变量_Php_Html_Variables_Drop Down Menu - Fatal编程技术网

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

根据下拉列表中选择的内容更改php变量,php,html,variables,drop-down-menu,Php,Html,Variables,Drop Down Menu,我想在我的网站上创建一个页面,用于查看用户档案。当用户第一次访问页面时,我希望它显示他们自己的个人资料。但是我想放一个下拉菜单或者一些东西,让他们能够查看其他用户的个人资料。我还没有开始创建这个,但是我只是想知道我想要实现的目标是否有可能 我想做的是使用一个php变量,它应该是$UserID或其他什么 以$UserID开头将等于当前查看页面id的用户,例如1代表管理员 然后我将通过变量$UserID从数据库获取所有数据 但是为了查看其他用户的配置文件,我想根据下拉列表中选择的用户名更改$User

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

我想做的是使用一个php变量,它应该是
$UserID
或其他什么

$UserID
开头将等于当前查看页面id的用户,例如1代表管理员

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

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

e、 g.如果dropdownuser=Test3,则
$UserID
=5

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


我说的对吗

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


在我的个人资料页面上,您使用登录用户的ID,类似于
$\u SESSION['user-ID']
,在常规个人资料页面上,您使用下拉列表中的ID或通过URL获得的任何内容,因此类似于
$\u获得['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响应。对于服务器来说,这就像加载了一个新页面。阅读更多信息。

@haseeb请不要对代码以外的任何内容使用反勾号,例如,请参见为什么。在编辑时,请同时修复其他问题,如i->I@TobiasKienzler这样更好吗?#Danbyization backticks中的
$UserID
等部分很好(你可以点击“编辑的#分钟前”并选择rollback,如果你想重新应用它们的话),但是@haseeb也在“页面id,例如1”和“例如”这些都不是代码,所以我不能在一页上完成所有的工作??当然可以,但我不推荐。例如,“我的个人资料”需要可编辑,以便当前用户可以更新他的个人资料,而用户不能更改其他人。使用单独的页面要健康得多。因此,我会有一个页面显示当前用户的个人资料,并提供编辑选项,还有一个页面只需打开一个下拉菜单,供他们选择要访问的用户个人资料,然后当他们选择一个页面时,会打开一个新页面,显示用户的个人资料他们选择了??你不需要两页的普通档案。将下拉列表放在同一个页面上,例如右上角…但是根据下拉列表中选择的内容,配置文件将如何更改,因为当页面加载时PHP正在运行,不是吗???毫无疑问,一旦更改。但它会重新加载页面。