Use a form to filter table data in a module
It sounds like your problem is about passing the selected value to your page rendering function, upon form submission.  There are a few different ways to pass that value from within the form_submit function, including via a URL argument, or setting a cookie, or using some javascript to post the value - or even using variable_set() in the right circumstances. There might be easier better ways than those, and I'd like to know what they are if they exist.

Here's a way to do it via a URL argument:


In the form_submit() function, pass the select data to the page rendering function via drupal_goto().  Eg: drupal_goto( 'this/page/' . $form_state['values']['city']
Be sure that your page rendering function can accept the right argument.
in your hook_menu:
'page arguments' => array( 2 ),
(or you can just grab the argument using arg( 2 ) from within the page rendering function)


I'm not saying this is necessarily the best way to get the job done, but this should work.