gpt4 book ai didi

php - 从下拉菜单中设置 PHP cookie

转载 作者:行者123 更新时间:2023-11-28 04:01:48 25 4
gpt4 key购买 nike

我有一个 PHP 脚本,旨在让用户决定页面以哪种语言显示。信息存储在 cookie 中,然后在需要时读取以显示正确的内容。

目前,我使用 HTML 下拉框允许用户选择语言,然后他们必须按表单提交按钮来设置 cookie。 我怎样才能让他们在下拉菜单中选择语言时自动选择语言并提交表单?我希望你能理解我的问题。

我当前的 PHP 代码是:

<?php
$user_lang = null;
if (isset($_POST["setc"])) {
$expire = time() + 60 * 60 * 24 * 30;
setcookie("mycookie", $_POST["sel"], $expire);
header("location: " . $_SERVER["PHP_SELF"]);
} else if (isset($_COOKIE["mycookie"])) {
$user_lang = $_COOKIE["mycookie"];
}
?>

<meta charset='utf-8'>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<select name="sel" size="1">
<option value="en"<?php echo (!is_null($user_lang) && $user_lang === "en" ? " selected" : ""); ?>>English</option>
<option value="es"<?php echo (!is_null($user_lang) && $user_lang === "es" ? " selected" : ""); ?>>Español</option>
<option value="fr"<?php echo (!is_null($user_lang) && $user_lang === "fr" ? " selected" : ""); ?>>Français</option>
<option value="de"<?php echo (!is_null($user_lang) && $user_lang === "de" ? " selected" : ""); ?>>Deutsch</option>
</select>
<input name="setc" value="save setting" type="submit">
</form>

最佳答案

将您的选择标签更改为:

<select name="sel" size="1" onchange="this.form.submit();">

当用户选择语言时提交表单。

如果你想在没有 JavaScript 的情况下这样做,你可以使用多个提交按钮方法来代替:

<input name="set_language[en]" value="English" type="submit">
<input name="set_language[es]" value="Español" type="submit">
<input name="set_language[fr]" value="Français" type="submit">
<input name="set_language[de]" value="Deutsch" type="submit">

处理这个表单很简单:

if (isset($_POST["set_language"])) {
$language = key($_POST["set_language"]);
// $language contains user-selected language code now
}

如果没有 JavaScript 或任何其他客户端脚本语言,则无法使用选择字段完成此操作。

关于php - 从下拉菜单中设置 PHP cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com