2

我需要将选择值传递给会话而不刷新页面。我认为可以使用 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
4

2 回答 2

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
}
于 2013-04-19T02:27:57.783 回答
0

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

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

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

希望能帮助到你。

于 2013-04-19T02:24:56.493 回答