Saving Field Data Custom Craft Plugin
It seems all you miss is the define setting and the value attribute in your template, Craft manages the settings for your plugins without any need to edit many things. It stores and loads them automatically. You can handle the entire process on your own and overwrite craft functions but out of the box you have to do nearly nothing. 

As a great boilerplate you could create a plugin with Pluginfaktory it has many examples how to manage things like routing, templating and all that kind of stuff. 

Just turn the "Settings" lightswitch to on and don't change the "Comments" button.

Anyway here is some example code to store settings
In your Plugin.php you need

 /**
 * Defines the attributes that model your plugin’s available settings.
 *
 * @return array
 */
protected function defineSettings()
{
    // this is an array with all the settings the user may change. 
    // Open the `AttributeType` file to see a full list. Eg. Integer, 
    // String, JSON, Enum.... there are many ready to use data types, and of 
    // course you could define validation rules like min length, max length, 
    // in range and such
    return array(
        'apiKey' =&gt; array(AttributeType::String, 'label' =&gt; 'Your Api Key', 'default' =&gt; 'XXXX'),
        'listId' =&gt; array(AttributeType::String),
    );
}

/**
 * Returns the HTML that displays your plugin’s settings.
 *
 * @return mixed
 */
public function getSettingsHtml()
{
   return craft()-&gt;templates-&gt;render('mailchimped/settings', array(
       'settings' =&gt; $this-&gt;getSettings()
   ));
}


And your template

{% import "_includes/forms" as forms %}

{{ forms.textField({
    label: 'Some Setting',
    instructions: 'Enter some setting here.',
    id: 'apiKey',
    name: 'apiKey', 
    value: settings['apiKey']})
}}

{{ forms.textField({
    label: 'Some Setting',
    instructions: 'Enter some setting here.',
    id: 'listId',
    name: 'listId', 
    value: settings['listId']})
}}


Yeah, thats finally it... you can access those with from everywhere

MailchimpedPlugin::getSettings()['listId']


Or

$settings = MailchimpedPlugin::getSettings();
$data = $settings-&gt;getAttributes();