Passing values by form to create a query

It all depends on how you’re trying to do it. When it comes to filtering results, i usually setup the form to use $_GET and filter the results when the page loads again:

if (isset($_GET['term'])) {
    $term = $_GET['term'];
} else {
    $term = 'defaultTerm';
}

if (isset($_GET['childterm'])) {
    $childterm = $_GET['childterm'];
} else {
    $childterm = 'defaultChild';
}

$args = array(
   'tax_query' => array(                        
       array(
          'taxonomy' => 'state',
          'field' => 'slug',
          'terms' => array( $term, $childterm ),
          'operator' => 'IN'
       )
    )
);