Jquery在表单发布后显示div

时间:2011-03-10 14:02:52

标签: php javascript jquery

我在页面上有一个链接可以切换div的可见性。 div包含已发布的表单的过滤器选项。我希望在帖子后保留过滤器的可见性;所以如果它在发布之前打开,它会在发布后保持打开状态。

到目前为止,这是我的脚本代码:

$(document).ready(function() {

    // choose text for the show/hide link
    var showText="Show Filter Options";
    var hideText="Hide Filter Options";

    // create the toggle link
    $("#filter-params").before("<p><a href='#' id='toggle-link'>"+showText+"</a>");

    // hide the content
    $('#filter-params').hide();

    // capture clicks on the newly created link
    $('a#toggle-link').click(function() {

        // change the link text
        if ($('a#toggle-link').text()==showText) {
            $('a#toggle-link').text(hideText);
        }
        else {
            $('a#toggle-link').text(showText);
        }

        // toggle the display
        $('#filter-params').toggle('slow');

        // return false so any link destination is not followed
        return false;
    });

});

3 个答案:

答案 0 :(得分:2)

为什么不在与表单一起发布的隐藏字段中存储布尔值?这种方式在PHP中你会知道它的价值,你可以在下一个回复中正确地呈现它。

如果您需要一个例子,请告诉我。

<?php
    var $defaultFilterSetting = false;

    // This code only runs when you've performed a post back to this page
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $defaultFilterSetting = $_POST["defaultFilterSetting"];
    }
?>

<form name="input" action="<?php $PHP_SELF;?>" method="post">
    <input type="hidden" name="defaultFilterSetting" value="<?=$defaultFilterSetting?>" />
    <!-- ... all other html elements -->
</form>
<script type="text/javascript">
    var filterSetting = $('input[name="defaultFilterSetting"]').val();
    alert(filterSetting);
    // you can change the value here and it will be posted back everytime
    // eg. let's change it to true here:
    $('input[name="defaultFilterSetting"]').val(true);
    // if you would do another postback it should alert true now;
</script>

请原谅我,如果它包含拼写错误,已经有一段时间了,因为我已经编写了PHP并且我没有主机设置来测试它。所以这是写的。

答案 1 :(得分:1)

将其状态存储在cookie中。

jQuery Cookie plugin摘录了一些关于在JavaScript中设置和阅读Cookie的烦人事项。

答案 2 :(得分:0)

您可以在脚本标记中包含php。

例如我今天所做的事情就在我的

if (isset($_POST['submit'] 
{
    $stall_type = sanitize($_POST['stall_type']; 
}

然后在我的脚本标签(document.ready)中进一步向下我的

页面
$('.tandem').hide();

<?php if (isset($_POST['submit']))
{
    if ($stall_type == 'tandem')
    { ?>
        $('.tandem').show();
    <?php } else { ?>
        $('.tandem').hide();
    <?php }             
} ?>