I don’t quite get exactly what you’re asking, this is a generic answer that I think will be helpful.
If you are using dropdown lists, let’s skip over the GET method and use POST. It works better for forms and will be the method of choice for future AJAX implementation as well. GET was only suggested because it works well with < a >
tags and buttons. POST also works well so the dropdown and the result code can reside on the same page, also an advantage for future AJAX.
The template is setup so if it is a GET request, the dropdowns are displayed. If it is a POST request, the submitted values are inserted into a query and the results displayed.
One option for the dropdowns is to simply hardcode the HTML, populating the option list with known meta values. If you need to populate the option list with all meta values from all posts, it gets tricky because it seems all post meta functions only work for a particular post, not all of them. Unless you can find the right function, I think you’ll need to do a $wpdb query to get an array of all meta values used.
To build a dropdown from an array of meta values, first output the form and select tags. The do a foreach loop on the array, outputting the option tags with the meta value inserted into the value attribute and as the display label. Then output the closing select and form tags.
When the form is submitted as POST, the selected value of each field is available as $_POST[‘select-name’]. Use such values to build your query arguments. Then create a new query object and run the loop as normal.
Once this setup is working, converting to AJAX is straight forward. Unfortunately, AJAX in WP has a few quirks you need to address or you will get strange unexplainable results. If you are familiar with AJAX but not for WP, do some research before diving in. If not, starting from the beginning with WP specific examples should work fine.