javascript - 如何记住表单提交时的切换状态 - 在 session 变量中显示/隐藏

标签 javascript php jquery session toggle

我正在使用切换链接来显示和隐藏搜索页面上的某些页面内容。该开关设置为在页面加载时隐藏。 功能很好,但我需要记住表单提交时的切换状态,以便如果用户决定编辑初始搜索,则会记住状态。

这是工作函数:

$(document).ready(function(){

   $(".slidingDiv").hide();
   $(".show_hide_search").show();

   $('.show_hide_toggle').on('click', function(e){
       e.preventDefault();

       var self    = this,
           sliding = $(this).closest('div').next('.slidingDiv').slideToggle(function(){
               $($(self).children()[0]).text(function(_,txt) {
                    return txt == "–" ? "+" : "–";
               });
           });
    });
});

和 HTML:

<div class="show_hide_toggle">
    <a href="#" class="show_hide_search" id="plus">+</a>    
    <div class="show_hide_search2">More</div>
</div>  

<div class="slidingDiv" style="display: block;">
      <h2>Content One</h2>
</div>

这就是我记住表单元素 session 的方式(如果有帮助的话):

<?php echo ($_SESSION['save_srch']['name1'] == 'name')?'selected="selected"':'';?>

这是一个 JSFiddle:http://jsfiddle.net/Bradg/eBfxB/11/

最佳答案

看来你有几个选择。正如上面的评论中提到的,您可以向切换的点击处理程序添加一些内容,以对服务器进行 AJAX 调用并立即将值存储在 session 中。

但是您最初的问题是如何将其存储在表单提交(发布)上。如果您不想走 AJAX 路线,我的建议是向您的标记添加一个隐藏的输入控件,并为切换状态设置 true/false 值。每当单击切换时,也会切换隐藏控件的值。当您提交表单时,只需检查隐藏控件的值并根据需要将该值存储在 session 中。

这种方法的缺点是,如果由于某种原因浏览器在表单提交之前丢失状态,您将不会立即存储该值。因此,在某些情况下(浏览器崩溃、导航离开),表单可能不会被提交,因此切换的值不会被存储。因此,您必须决定哪种方法适合您的场景。

关于javascript - 如何记住表单提交时的切换状态 - 在 session 变量中显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26472956/

相关文章:

javascript - AngularJS - 基于类别等的复杂过滤

php - 在非常高的图像上用 PHP 绘制线条,然后脚本停止绘制。出了什么问题,我该如何解决?

php - 从 Paypal IPN 获取结果的问题

javascript - 使用 JavaScript 更新 anchor

javascript - 每 2 秒多次运行相同的 javascript 函数

javascript - 使用 Javascript 在嵌套 FormView 中隐藏/显示控件

javascript - 如何找到哪个脚本修改了所选属性的CSS

php - PHP 中嵌入 MySQL 请求的 Javascript

jquery - 如何使用 jQuery 动态更改 SVG 的填充颜色?

javascript - 对象层次结构中的变量范围