Попробуйте добавить в URL, по которому происходит поиск, следующее: &utf8=✓. Помнится, это делается именно для того, чтобы IE воспринимал URL в правильной кодировке.
Ну вот, для сервера это не функция, которую нужно исполнить, а просто текст. А вот клиент воспринимает этот текст уже как скрипт, который нужно запустить.
Попробуйте ob_start и ob_end_clean перенести ближе к непосредственной разметке, а логику вынести за них. Не уверен, что это поможет, но это первое, что я бы сделал.
Не может быть два роута с одинаковым url и методом. Либо делайте как во втором вашем варианте, либо делайте один метод, который через post будет принимать команду increase или decrease.
&utf8=✓
. Помнится, это делается именно для того, чтобы IE воспринимал URL в правильной кодировке.