Но форма отправляется гетом и выходит, что эти поля будут дублироваться в адресной строке и размножаться в геометрической прогрессии, а толку с этого не будет потому что массив $_GET будет брать только последнее значение. Единственное что мы получаем с такого рода проверкой на рендеринг скрытых полей - засорение урл.
Логично было бы сделать проверку "если не get и есть get параметры", то рисовать скрытые поля.
В том что сейчас сделано я не вижу никакого смысла.
Вы предлагаете после заполнения формы поиска делать редирект?
Но здесь редирект не поможет потому что скрытые поля создаются тогда, когда в форме указан метод get и есть get-параметры в урл по которому перешли на страницу с формой, я уже писал.
Мне не понятна логика самой проверки, почему оно рендерится если метод формы get и есть параметры, почему не post.