如何在PHP中保存下拉列表的值而不提交?

问题描述 投票:0回答:1

有什么方法可以在PHP中(没有AJAX)将这个下拉列表的值保存在一个变量中而不实际提交表单?

 <p>
            Choose device type :
            <?php
            echo "<select name='device_type_id'>";
            echo "<option value='Select'>Select</option>";
            foreach ($dev_type_results as $row) {
                echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
            }
            echo "</select>"; ?>
        </p>
php html dropdown
1个回答
1
投票

据我所知,你不能选择设备类型。Php生成你的页面,然后选择方法是在客户端的浏览器上实现的,而不是在服务器上(服务器端的php脚本不再运行)。你需要提交表单,然后再运行一次php脚本,从POST中提取值。


1
投票

无论是通过AJAX还是直接提交表单,都会向服务器端发送一个请求,在我们的例子中是PHP。

如果你想让服务器接收任何数据,你需要提交表单。

答案是否定的。在上述限制下是不可能的。


1
投票

不,在PHP中不可能,除非你提交它,把它保存在db中,然后在不同的页面上获取它。为了让值保存在前端,你必须使用React或Vue中常见的存储或状态。另一种方法是使用javascript保存在localstorage、cache存储、IndexDB或cookie中。然后你可以从那里检索你的值


0
投票

如果你不需要服务器上的值,最简单的方法是通过 会话存储 如果您不需要跨浏览器保存,请关闭或删除。本地存储 如果您需要更长的存储时间

第1页:

$("[name=device_type_id]").on("change",function() { 
  sessionStorage.setItem("device_type",this.value); 
}); 

Page2:

const deviceType = sessionStorage.getItem("device_type") || "Not passed";

0
投票

您可以使用cookie在客户端保存数据,然后在服务器端获取。

PHP代码(服务器端)。

if ($_COOKIE) {
    header('content-type: text/plain; charset=utf-8');
    print_r($_COOKIE);
    exit;
}

Javascript代码(客户端)。

document.cookie = "name=yourname";
document.cookie = "favorite_food=bakso";
© www.soinside.com 2019 - 2024. All rights reserved.