Перейти к содержанию
Puzik

[Решено] Программирование поиска opencart

Рекомендуемые сообщения

Добрый день. подскажите пожалуйста бьюсь не первый час.

Как в опенкарте обрабатывается форма поиска.

Опишу подробней.

 

вставил свой большой кусок кода методом пост. В контроллере прописал. Все читает все видит все отображает.

Но мне нужно зафиксировать одну переменную id и если пользователь нажмет поиск и изменит параметры поиска то эта переменная теряется.

 

Короче я добавил В отображение поиска catalog/view/theme/product/search.tpl

<input type="checkbox" name="idsearch" value="<?php echo $idsearch; ?> id="idsearch" checked="checked" />
		<label for="idsearch"><?php echo "Искать для выбранной модели №" . $idsearch; ?></label>

В контроллер поиска 

if (isset($this->request->get['idsearch'])) {
			$idsearch = $this->request->get['idsearch'];
		} else {
			$idsearch = '';
		} 	

И в контроллере поиска формирование урла:

$url = '';
		if (isset($this->request->get['idsearch'])) {
			$url .= '&idsearch=' . $this->request->get['idsearch'];
		}

Но где то я пропустил что то. И не могу понять передается моя переменная при нажатии на поиск или не передается. Если я нажимаю на свои ссылки и передаю get или пост то все работает. А если нажимаю на опенкартовский поиск то он не передает эту переменную.

 

Кто нибудь сталкивался с таким.

У меня или урл не формиhetn ссылку правильно или форма не передает данные - как лучше не знаю.

Помогите плиз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

catalog/view/javascript/common.js  :twisted:

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

catalog/view/javascript/common.js  :twisted:

Добрый день. Спасибо за помощь, этого я не знал, не думалчто в этой системе еще и js применяют для поиска. Но не помогло.

Вот что я дописал:

var filter_name = $('input[name=\'filter_name\']').attr('value');
var idsearch = $('input[name=\'idsearch\']').attr('value');
		
		if (filter_name) {
			url += '&filter_name=' + encodeURIComponent(filter_name);
			url += '&idsearch=' + encodeURIComponent(idsearch);
		}

В форме у меня есть input с name idsearch и в value прописан нужный мне номер.

Сам параметр передается если его вручную указать и выводится и в стоке урл передается и весь пхп скрипт работает. Но мне нужно что бы это значение передавалось если я на кнопку поиск нажимаю тоже

В search.php везде прописал 

if (isset($this->request->get['idsearch'])) {
			$url .= '&idsearch=' . $this->request->get['idsearch'];
		}

а до этого везде обозначил переменную 

if (isset($this->request->get['idsearch'])) {
			$idsearch = $this->request->get['idsearch'];
		} else {
			$idsearch = '';
		} 

но блин что то все равно не работает. И я думаю не работает потому что в search.php в модели - мы добавляем к урлу значения. Но должен жеж быть обработчик, который смотрит что отмечено чекед а что нет! Праавильно? Но контроллера по поиску я не нашел.

В самом отображении даже сделал вот так

<?php if ($idsearch) { ?>
			<input type="checkbox" name="idsearch" value="<?php echo $idsearch; ?>" id="idsearch" checked="checked" />	
				<?php } else { ?>
				<input type="checkbox" name="idsearch" value="<?php echo $idsearch; ?>" id="idsearch"  />	
				<?php } ?>
		<label for="idsearch"><?php echo "Искать для выбранной модели №" . $idsearch; ?></label>

Вот в каком файле определяются отмечен ли этот инпут или не отмечен? Явно не в модели... В common.js - тоже нет. Вот только что переделал так и все равно не работает 

var idsearch = $('input[name=\'idsearch\']').attr('value');
			
			if (filter_name) {
				url += '&filter_name=' + encodeURIComponent(filter_name);
				
			}
			if(idsearch){
			url += '&idsearch=' + encodeURIComponent(idsearch);
		}
			location = url;
		}

ПОМогите пожалуйста, прошу... очень нужно... уже мозги кипят..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

catalog/view/javascript/common.js  :twisted:

Все спасибки огромное нашел в конце файла  с отображением, такой же код только для конкретной формы изменил его и все заработало.

Тема закрыта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так форма поиска одна ведь.

и обработчик (родной) - в common.js.

 

странно, что у вас еще и в файле шаблона что-то было...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От lelko
      Привет всем! Поиск Opencart выводит только список продуктов соответствующих поисковому запросу. Как добится того, чтобы поиск выводил не только продукты но и категории и другие страницы сайта??? Жду ответов. Спасибо!
      Например мне нужно чтобы в результатах поиска выводилась информация из следующих страниц: http://tribonew.it4u.ua/about/opisanie , http://tribonew.it4u.ua/contacti/information и т.п.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.