将下拉值传递给会话而不刷新页面

时间:2013-04-19 02:13:00

标签: php javascript jquery ajax session-variables

我需要将选择值传递给会话而不刷新页面。 我认为可以使用onchange事件。

实际上,我可以将选择值放入文本字​​段。

HTML

选择

<select id="dropdown1" class="select" tabindex="2" onchange="run(this)">
    <option>Select</option>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
</select>

文本框:

<input type="text" id="car" name="car" id="car" value="<?=$_POST[car]?>" disabled /> 

的JavaScript

function run(sel) {
    var i = sel.selectedIndex;
    if (i != -1) {
        document.getElementById("car").value = sel.options[i].text;
    }
}

问题

如何从下拉列表中选择值时设置变量的值?

$_SESSION['car'] = DROPDOWN VALUE

2 个答案:

答案 0 :(得分:2)

如果你可以使用jQuery,这将有效:

function run(sel) {

    var i = sel.selectedIndex;
    if (i != -1) {
        document.getElementById("car").value = sel.options[i].text;

        $.ajax({
            type: "POST",
            url: "urPHPPage.php",
            data: { car: sel.options[i].text}
        }).done(function( msg ) {});
    }
}

并在您的PHP文件中

if(isset($_POST["car"])){
   $_SESSION['car'] = $_POST["car"]; //offcourse you will have to do some sanitization here
}

答案 1 :(得分:0)

由于您的会话是服务器端事件,并且您的onchange事件是客户端事件,因此您需要使用AJAX来更改下拉选项而不刷新页面。

您需要在onchange事件上运行JavaScript函数。

在该功能中,您需要使用AJAX才能连接到您的浏览器/数据库并保存session['car']

希望它有所帮助。