In that case change ALL your $this->input->post('submit') into $this->input->method() === 'post' instead.
You aren't sending any data inside your submit button, so it will always be null.
Not sending data:
<input type="submit" value="Submit!" />
Sending data:
<input type="submit" name="submit" value="Submit!" />
Or you can do $this->input->post() instead. Depending how you would like to validate that all your fields have been submitted.