Pass $form and $form_state as arguments in hook_menu
If you're using Drupal's form API, it already has support for AJAX built into to it via the #ajax property. For example....

function MYMODULE_example_form() {
  //@TODO: various form elments...

  $form['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
    '#ajax' =&gt; array(
      'callback' =&gt; '_MYMODULE_example_form_submit'
    )
  );
  return $form;
}

function _MYMODULE_example_form_submit($form, &amp;$form_state) {
  //@TODO: process submitted form
}


The examples module has more examples of this if you'd like to see more of it in action.