Все, поправил. Проверяйте. Особенно бесплатные номера http://nomerok.ru/krasiviy-nomer-besplatno.html (что-то у меня сомнения, должно ли там быть столько много номеров). Но в целом у вас там, конечно, все очень плохо. Для обычных запросов один сниппет, для Ajax - другой. Куча всяких параметров, разбросанных по двум тысячам строк. Это все вообще не правильно. Вот, к примеру, условие для обычных запросов: А вот для Ajax: Почему в одном случае есть условие по маске, а в другом нет? Вот, в итоге, и поведение такое, что при заходе на страницу с маской поиска в адресной строке выполнялся поиск, а далее при Ajax-запросах нет. Раньше у вас это работало, потому что задублировано все было в два сниппета отдельных, а сейчас логика объединена в один сниппет. Но косяки лезут и скорее всего еще будут, потому что у вас по 500 строк в блоке и еще 500 в else. Так не должно делаться. Должно быть единое формирование запроса со входящими параметрами типа $operator_id, $max_cost, $min_cost и т.п. А у вас там что? Что это за солянка из кучи запросов, включая глобальные переменные? А формирование запросов? Что это? Почему вы работаете на MODX с программистами, которые не слышали про xPDO и пишут запросы на чистом SQL? Но и это еще не предел. Предел вот это: Зачем он для подсчета количества найденных строк использует полный дубль запроса??? Запихнул бы уже тогда параметры * и count(*) в переменные, и вставлял в запрос-заготовку. В общем, совсем не удивляйтесь, что столько времени ушло. Я взял с вас денег за полтора часа, а потратил часов десять. И за оговоренный функционал доплату не попросил. Другой бы вообще давно потерялся бы и все.