Php 将会话变量设置到下拉菜单中的选定项
我有一个从mysql填充的php下拉列表 当用户选择下拉项时,我希望将此选定值存储在会话变量中 这样做的原因是,我需要调用此会话变量,以基于先前的选择动态更新第二个下拉列表 我该怎么做? 谢谢Php 将会话变量设置到下拉菜单中的选定项,php,mysql,drop-down-menu,session-variables,Php,Mysql,Drop Down Menu,Session Variables,我有一个从mysql填充的php下拉列表 当用户选择下拉项时,我希望将此选定值存储在会话变量中 这样做的原因是,我需要调用此会话变量,以基于先前的选择动态更新第二个下拉列表 我该怎么做? 谢谢 while($row2=mysql\u fetch\u assoc($result2)) { 回显'.$row2['subjectname'].'; } 回声'; 在PHP中,如果不调用另一个PHP文件(例如发送表单),则无法执行此操作。设置会话变量的代码很简单: <?php session_st
while($row2=mysql\u fetch\u assoc($result2))
{
回显'.$row2['subjectname'].';
}
回声';
在PHP中,如果不调用另一个PHP文件(例如发送表单),则无法执行此操作。设置会话变量的代码很简单:
<?php
session_start();
$_SESSION['selectname'] = $_REQUEST['selectname'];
?>
如前所述,要“动态”更新会话变量,必须使用javascript(jQuery是一个很好的库)。如果将事件处理程序添加到下拉框:
onChange='updateVar();'然后创建一个javascript函数来更新变量的值。该函数的一种工作方式是使用ajax调用更新会话变量的php页面
jQuery示例:
$("select[name='dropdownBox']").change(function() { //event handler
newvalue = $(this).val(); //get selected value
$.ajax({
type : 'GET',
url : 'ajax.php',
dataType : 'json',
data : {
p : 'updateVar',
v : newvalue
},
success : function(data) {
//on success code
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//on error code
}
});
} );
然后,您只需要一个简单的php脚本来获取$\u GET变量并更新所需的$\u会话变量
希望这有帮助我对clarityok的问题做了一些更改,正如您所说,如果不先发送表单,这是行不通的。您能建议一种替代方法,根据第一个下拉列表中选择的值动态更新第二个下拉列表吗?对于这个特定的问题,有很多解决方案,例如JQuery派生的东西(然而,您可以通过AJAX请求重新加载第二个下拉框的条目)。然而,这远远超出了这个问题的范围,可能应该放在另一个问题中。
$("select[name='dropdownBox']").change(function() { //event handler
newvalue = $(this).val(); //get selected value
$.ajax({
type : 'GET',
url : 'ajax.php',
dataType : 'json',
data : {
p : 'updateVar',
v : newvalue
},
success : function(data) {
//on success code
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//on error code
}
});
} );