首页 > 解决方案 > 如何在复选框上添加 PHP Cookies 或 Sessions

问题描述

我的复选框,所以我想用 php 添加 cookie 或会话

<a title="ON/OFF New Tab">
    <input class="avflipswitch"
           type="checkbox"
           name="openurl"
           value="openmetab"
           onclick="window.location.reload(true);"
           <?php if(isset($_POST['openurl'])) echo "checked='checked'"; ?>
    />
    <img
        src="https://4.bp.blogspot.com/-Q8V36NYKBH8/XDNyuR1kQbI/AAAAAAAAA1Y/-SC4PKRgT8Yw6wEliFnPi2Ps7_3rYaezQCLcBGAs/s1600/linkinnewtab.png"
        alt="Settings" width="12" height="auto"
    />
</a>

使用此 PHP 代码,我想设置链接打开 _self 或 _blank

<?php 
session_start();
if (isset($_POST["openurl"])) {
   $opurl = "_blank";
} else {
   $opurl = "_self";
};?>

标签: php

解决方案


您需要一个表单标签或使用 javascript 提交一个 POST。您可以在其周围放置一个标签,并为输入添加 onchange,然后提交。

<form method="POST">    
    <label for="openurl">
        <input 
               id="openurl" 
               class="avflipswitch" 
               type="checkbox"
               name="openurl"
               value="openmetab"
               onchange="this.form.submit()"
               <?php if(isset($_POST['openurl'])) echo "checked='checked'"; ?>
        />
        <img
            src="https://4.bp.blogspot.com/-Q8V36NYKBH8/XDNyuR1kQbI/AAAAAAAAA1Y/-SC4PKRgT8Yw6wEliFnPi2Ps7_3rYaezQCLcBGAs/s1600/linkinnewtab.png"
            alt="Settings" width="12" height="auto"
        />
    </label>
</form>

然后在您的 PHP 中,您可以设置会话。

<?php 
session_start();
if (isset($_POST["openurl"])) {
   $_SESSION['openurl'] = "_blank";
} else {
   $_SESSION['openurl'] = "_self";
};?>

推荐阅读