Cannot update my options using wp_ajax

I have implemented wp_ajax in on my options page but the value of my options are not getting saved or updated. Here is my form:

public function email_settings_form(){
    // Set class property
    $this->options = get_option( 'email_settings_options' );       
    <div class="wrap">
        <h2>Email Settings</h2>  
        <form id="email-settings-form" method="post" action="options.php">
            // This prints out all hidden setting fields
            settings_fields( 'schedule_section' );
            do_settings_sections( 'email-options' );
                $other_attributes = array( 'id' => 'save-email-settings' );
                submit_button( 'Save Settings', 'primary', 'save-email-settings', true, $other_attributes );
        <div id="post-listing" class="wrap"></div>        


Here are my settings:

public function email_settings_page_init(){

    // Register the 'footer_message' setting with the 'General' section
        'schedule_section',                      // The name of the group of settings
        'email_settings_options'            // The name of the actual option (or setting)
        //array( $this, 'schedule_sanitize' )   // Sanitize

    // Let's introduce a section to be rendered on the new options page
        'schedule_section',                             // The ID to use for this section in attribute tags
        'Email Schedule Options',                       // The title of the section rendered to the screen
        array($this, 'bbna_schedule_section_display'),  // The function used to render the options for this section
        'email-options'                            // The ID of the page on which this section is rendered

    // Define the settings field
        'number_of_articles_to_send',                          // The ID (or the name) of the field
        'Number of Articles to Send',                               // The text used to label the field
        array($this, 'number_of_articles_to_send_display'),    // The callback function used to render the field
        'email-options',                                       // The page on which we'll be rendering this field
        'schedule_section'                                          // The section to which we're adding the setting


Here is my callback function for the section and select box:

public function schedule_section_display(){
        <p>This section is to configure the automated mail settings for the morning editon.</p>

public function number_of_articles_to_send_display(){
  $html = '<select id="exclude_days" name="email_settings_options[number_of_articles_to_send]"';
        $html .= '<option>Select the number of articles to auto send</option>';
        $html .= '<option value="5"' . selected( $this->options['number_of_articles_to_send'], '5', false) . '>5</option>';
        $html .= '<option value="6"' . selected( $this->options['number_of_articles_to_send'], '6', false) . '>6</option>';
        $html .= '<option value="7"' . selected( $this->options['number_of_articles_to_send'], '7', false) . '>7</option>';
        $html .= '<option value="8"' . selected( $this->options['number_of_articles_to_send'], '8', false) . '>8</option>';
        $html .= '<option value="9"' . selected( $this->options['number_of_articles_to_send'], '9', false) . '>9</option>';
        $html .= '<option value="10"' . selected( $this->options['number_of_articles_to_send'], '10', false) . '>10</option>';
        $html .= '<option value="11"' . selected( $this->options['number_of_articles_to_send'], '11', false) . '>11</option>';
    $html .= '</select>';

    echo $html;  

and here is my javascript:

(function($) {
        $(function() {
            $("#bbna-email-settings-form").submit(function() {
                data = {
                    action: 'get_email_settings_ajax_results',
                    settings_nonce: settings_vars.settings_nonce

                $.post(ajaxurl, data, function (response) {

                return false;

Now when I turn off the ajax my setting save correctly. However, when I turn ajax on they don’t save or update. I know ajax is working because I am able to successfully run queries into the wp_ajax function which is below:

public function process_email_settings_ajax(){
    if( !isset( $_POST['settings_nonce'] ) || !wp_verify_nonce($_POST['settings_nonce'], 'ettings_nonce') ){
        die('Permissions check failed');    

    $downloads = get_posts(array('post_type' => 'post', 'posts_per_page' => 5));
    if( $downloads ) :
        echo '<ul>';
            foreach($downloads as $download) {
                echo '<li>' . get_the_title($download->ID) . ' - <a href="' . get_permalink($download->ID) . '">' . __('View Download', 'aad') . '</a></li>';   
        echo '</ul>';
    else :
        echo '<p>' . __('No results found', 'aad') . '</p>';


So How do I save and update my options?

Solutions Collecting From Web of "Cannot update my options using wp_ajax"