Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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_Mysql_Drop Down Menu_Session Variables - Fatal编程技术网

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

我有一个从mysql填充的php下拉列表

当用户选择下拉项时,我希望将此选定值存储在会话变量中

这样做的原因是,我需要调用此会话变量,以基于先前的选择动态更新第二个下拉列表

我该怎么做? 谢谢

while($row2=mysql\u fetch\u assoc($result2))
{
回显'.$row2['subjectname'].';
}
回声';

在PHP中,如果不调用另一个PHP文件(例如发送表单),则无法执行此操作。设置会话变量的代码很简单:

<?php

session_start();
$_SESSION['selectname'] = $_REQUEST['selectname'];

?>

如前所述,要“动态”更新会话变量,必须使用javascript(jQuery是一个很好的库)。如果将事件处理程序添加到下拉框:
onChange='updateVar();'
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
                    }
                });
 } );