0

I have an accordion div (panel-collapse), at the end of the panel I have a submit button, initially, all the panel div are closed, I want to keep the state of the div the same after the submit reload.

  <div class="panel-group">
    <div class="panel panel-default">
      <div class="panel-heading">
        <h4 class="panel-title">
          <a data-toggle="collapse" href="#collapse1">Collapsible panel</a>
        </h4>
      </div>
      <div id="collapse1" class="panel-collapse collapse">
        <div class="panel-body">Panel Body</div>
        <div class="panel-footer">Panel Footer</div>
      </div>
    </div>

<div class="panel panel-default">
      <div class="panel-heading">
        <h4 class="panel-title">
          <a data-toggle="collapse" href="#collapse2">Collapsible panel</a>
        </h4>
      </div>
      <div id="collapse2" class="panel-collapse collapse">
        <div class="panel-body">Panel Body</div>
        <div class="panel-footer">Panel Footer</div>
      </div>
    </div>
  </div>
Codeone
  • 1,173
  • 2
  • 15
  • 40
smile 22121
  • 285
  • 4
  • 20

2 Answers2

0

On a regular form submit the page gets reloaded and resets everything, but if you submit the form Asynchronously using ajax nothing will change on your page. Using php + jQuery, you could do something like this:

$(document).on("click","#submitButton",function(e) {
    e.preventDefault();

    var formData = $("#formID").serialize();

    $.post("your_php_file.php",formData,function(response) {
        console.log(response); 
    });
 });
Wietse de Vries
  • 673
  • 7
  • 17
0

Only way to preserve setting without async requests is using cookies. You can set them via Javascript: (http://www.w3schools.com/js/js_cookies.asp)

Probably like assigning an array of active collapse panels

var active_panels=[0,1,2];
$.cookie('active_panels', JSON.stringify(active_panels))

Without jQuery see W3C specification

f7o
  • 663
  • 4
  • 8