on submission of form respective form should open
I'd do something like 

function donation_donate_form_submit($form, &amp;$form_state) {
  switch ($form_state['values']['donate']) {
    case 'candidate':
      $form_state['redirect'] = 'donate/candidate';
      break;

    case 'organization':
      $form_state['redirect'] = 'donate/organization';
      break;
  }
}


and from this point I can do two things

Solution 1

Create other two menu items with different form for each 

Solution 2

your original form would be called if you don't create any extra menu items (drupal falls back to the longest menu item that match the current URL), then change the existing form depending on the argument like this

function donation_donate_form($form, &amp;$form_submit) {
  $form = array();
enter code here
  // No argument ? we must be in the selection phase.
  if (arg(1) == NULL) {
    $form['officials'] = array(
      '#title' =&gt; t('OFFICIALS'),
      '#type' =&gt; 'radios',
      '#options' =&gt; array(
        'candidate' =&gt; t('Candidate'),
        'organization' =&gt; t('Organization'),
      ),
      '#default_value' =&gt; 'candidate',
    );

    $form['name'] = array(
      '#title' =&gt; t('NAME'),
      '#type' =&gt; 'textfield',
    );

    $form['submit'] = array(
      '#value' =&gt; t('PROCEED'),
      '#type' =&gt; 'submit',
    );
  }
  elseif (arg(1) == 'organization') {
    // Candidate form stuff.
  }
  elseif (arg(1) == 'candidate') {
    // Organization form stuff.
  }
  return $form;
}


It depends on how you like your code, and what you are trying to do.