Store the values of a views exposed filter Form I have build a form using the Form API that adds a checkbox to every row in my custom view (the view page can be found here: http://goo.gl/Pg6Ja7). 
I want this form to store the values even after I change the exposed filter of the view or change the view page. 

I was thinking to create a new submit button that will store the values on the current page, but I don't know how to do that, I googled the whole day. Or maybe some JavaScript ? 

I added the View form with a handler, here is the simple code I wrote for it: 

/**
   * @file
   *
   * A Views' field handler for adding a checkbox.
   *
   */
class files_download_links_mail_field_handler_checkbox  extends views_handler_field {
  function construct() {
    parent::construct();
    $this-&gt;additional_fields['nid'] = 'nid';
    //$this-&gt;additional_fields['field_file_download_link'] = 'field_file_download_link';

  }

  function query() {
    $this-&gt;ensure_my_table();
    $this-&gt;add_additional_fields();
  }

  function render($values) {
    // Render a Views form item placeholder.
    // This causes Views to wrap the View in a form.
    // Render a Views form item placeholder.
    return '&lt;!--form-item-' . $this-&gt;options['id'] . '--' . $this-&gt;view-&gt;row_index . '--&gt;';
  }

  function views_form(&amp;$form, &amp;$form_state) {
    // Create a container for our replacements
    $form[$this-&gt;options['id']] = array(
      '#type' =&gt; 'container',
      '#tree' =&gt; TRUE,
    );  
    // Iterate over the result and add our new field to the form.
    foreach($this-&gt;view-&gt;result as $row_index =&gt; $row) {
      // Add a checkbox field to the form.
      $form[$this-&gt;options['id']][$row_index] = array(
        '#type' =&gt; 'checkbox',
      );
    }
  }

   /**
   * Form submit method.
   */
  function views_form_submit($form, &amp;$form_state) {
    // Determine which nodes were selected.
    $selected_items = array();
    // Iterate over the view result.
    foreach($this-&gt;view-&gt;result as $row_index =&gt; $row) {
      if ($form_state['values'][$this-&gt;options['id']][$row_index] == 1) {
        $selected_items[$row-&gt;{$this-&gt;aliases['nid']}] = $form_state['values'][$this-&gt;options['id']][$row_index];
      }
    }
    // Grab the nodes
    $nodes = node_load_multiple(array_keys($selected_items));
    dpm($nodes);
  }
}
?&gt;


Thanks!
This seems like the perfect scenario for a custom module in my opinion. I know it's possible to get this working based on some light research I did (specifically this web page).

Your solution is using a custom module anyway, best to create the form and hooks and sql in the custom module and remove your dependency on views.

Create your hook_menu:

function MODULE_menu()
{
    $items['PATH'] = array(
        'title'            =&gt; t('TITLE'),
        'description'      =&gt; t('DESCRIPTION'),
        'page callback'    =&gt; 'drupal_get_form',
        'page arguments'   =&gt; array('MODULE_form_function'),
        'access arguments' =&gt; array('access content'),
        'type'             =&gt; MENU_NORMAL_ITEM,
    );

    return $items;
}


Create your form function (using the Form API and Database Abstraction Layer):

function MODULE_form_function($form, &amp;$form_state)
{
    // handle creation of your form, including sql to replace views.

    return $form;
}


Create your validate and submit handlers:

function MODULE_form_function_validate(&amp;$form_state)
{
    // handle the validation of your form
}

function MODULE_form_function_submit(&amp;$form_state)
{
    // handle the submission of your form
}


This is a much simpler and proven way to accomplish what you are trying to do.