Клуб Яндекс.Поиска для сайта

Отправка формы без перезагрузки страницы

mif19750629
13 апреля 2017, 09:13

Подскажите, пожалуйста, можно ли настроить форму поиска так, чтобы её отправка не приводила к перезагрузке страницы, а результаты сразу же подгружались куда нужно?

Например, переключение между страницами результатов (когда они уже есть) происходит без перезагрузки. Вот можно, чтобы при отправке формы было так же?

12 комментариев
firstlena.pershina
13 апреля 2017, 09:13
А зачем это нужно? 
Речь об обычном поиске или Поиске для магазинов? 
firstlena.pershina,
речь об обычном поиске.

Нужно это вот зачем.
Есть свой поиск по сайту. Когда он дает пустую выборку, хочется показывать поиск по сайту от Яндекса, желательно уже с результатами.
Для этого нужно сымитировать отправку формы. Но поскольку она всегда приводит к перезагрузке страницы, сделать так, как требуется, не получается.
Поддержу вопрос. Есть свой поиск по сайту - когда нет результатов - хочется подключить яндекс
firstlena.pershina
29 мая 2017, 14:33
babichdima1,
Вы можете это сделать, но вам нужно на своей стороне отлавливать событие вашего поиска - отсутствие результатов, и перезадавать вопрос в Яндекс.Поиск для сайта или Яндекс.XML - если у вас не интернет-магазин.
Для интернет-магазина рекомендуем сразу использовать поиск для интернет-магазинов от Яндекса: https://yandex.ru/support/site/create-catalogue/create.xml 
firstlena.pershina,
да, спасибо. это понятно. CURL вытягивать из отладчика или может есть информация куда отправлять запрос и какие параметры передавать? спс
firstlena.pershina,
у меня не интернет магазин
firstlena.pershina
29 мая 2017, 17:06
babichdima1,
API есть только для Поиска для магазина, поэтому тут либо вытягивать самостоятельно и отправлять в Поиск для сайта, либо пытаться на основе Яндекс.XML делать перезапрос: https://xml.yandex.ru/settings/ 
firstlena.pershina,
там мы упираемся в лимит 400 запросов. Правильно?

Я думаю можно попробовать отследить куда передается запрос с стандартной формы Яндекс.Поиск и методом http запроса просто формировать выдачу, если основной поиск на сайте дает пустую выдачу.
firstlena.pershina
29 мая 2017, 18:44
babichdima1,
Лимит в XML зависит от сайта, вы думаете, вам лимита не хватит с учетом, что у вас XML будет вторым поиском?
В Поиске для сайта лимита нет, но если слишком большой поток будет запросов, которые будут признаны машинными, сервис тоже может возразить и поставить капчу. 
firstlena.pershina,
решил не мудрить и сделать яндекс поиск по-умолчанию. единственное - стилизировать форму поиска под дизайн сайта (отойти от стандартного решения).
Там все просто. Просто создаем свою форму и отправляем get запрос. Но, у меня сайт с кодировкой cp1251. Надо перевести на UTF8 и тогда проблем не будет.
firstlena.pershina
29 мая 2017, 19:13
babichdima1,
В настройках на странице с кодом поиска можно кодировку поменять. 
firstlena.pershina,
отправлят get запрос все равно то будет в кракозяблях.