I believe something like this would do the trick.

**EDIT**

My code assumes the querystring value is the post_type, not an integer like your form field. Also, your form field is named 'cat', I think WordPress has that reserved, at least I remember having conflicts when I last used 'cat' in a querystring.

**EDIT 2**

(Changed filter from 'posts_where' to 'pre_get_posts' after having done some tests)

In functions.php

     function my_filter( $query )
     {
          if( is_search() )
          {
               $type = ( !empty( $_GET['your-field'] ) ) ? $_GET['your-field'] : "";
               
               if( $type )
                    $query->set( 'post_type', $type );
          }
     }
     add_filter( 'pre_get_posts', 'my_filter' );