Jump to content

Recommended Posts

Приветствую! Проблема такая. Нужно создать:

1. Всплывающую форму.

2. В ней поле со списком категорий.

3. После выбора категории должно появиться поле со списком подкатегорий (если таковые есть).

4. После выбора последней подкатегории должно появиться поле со списком товаров.

ну и далее.

 

Моя реализация:

1. Тут с помощью Колорбокс разобрался.

2. этот пункт тоже без проблем сделал.

Дальше просьба какашками не кидаться...Делал как мог...

3. В tpl'е сделал скрытые дивы с полями списков подкатегорий каждой категории. Благо их немного.

В селекте со списком категорий 2-го пункта поставил onchange со ссылкой на функцию js, которая по значению селекта делает видимым нужный див со списком подкатегорий.

Тут все работает норм.

 

Дальше по аналогии думал делать с товарами. А что если товаров и категорий будет много? Это мнго лишнего кода.

Подумал пойти другим путем. Задумка:

1. Получаем значение селекта и через js отправляем в рнр. Рнр обрабатывает значение и возвращает соответственно список подкатегорий или список товаров.

 

И тут полный абзац. Прочитал несколько статей о том как передавать переменные js в php и обратно. Но релизовать так и не смог.

 

Вопрос для профи: каким путем все-таки идти - как делал вначале или все-таки по второй задумке?

Если по второй - объясните как сделать правильно, или может быть есть какая-то литература для чайников, или простенький наглядный пример.

 

А то я уже 3-й день чуть голову не сломал.

 

З.Ы. Если кто-то хочет спросить ЗАЧЕМ так делать - не мой каприз, меня попросили, поэтому вопрос неактуален. Для меня актуальнее вопрос - КАК это сделать.

 

Заранее извиняюсь, если кого-то раздражаю тупыми вопросами.

Share this post


Link to post
Share on other sites

читайте о ajax запросах, 

пока сами не разберётесь, советы будут безуспешными

можно с помощью jQuery потом будет организовать запрос раз два-упрощённый

Share this post


Link to post
Share on other sites

читайте о ajax запросах, 

пока сами не разберётесь, советы будут безуспешными

можно с помощью jQuery потом будет организовать запрос раз два-упрощённый

Благодарю и на этом. Еще вопрос: никто не знает где можно себя недорого клонировать? Желательно за так.

Share this post


Link to post
Share on other sites

Хороший программист не изобретает велосипеды без необходимости.

Вам нужно строить раскрывающееся дерево. Так используйте плагины: http://habrahabr.ru/post/151239/

Share this post


Link to post
Share on other sites

Дык я и предупредил, что я чайник. Хотя по поводу плагинов - (я конечно не спец) - но бытует мнение, что иногда имеет смысл "собрать велосипед, чем ездить по двору на КАМАЗе". Многие, особенно универсальные плагины переполнены ненужным для частной задачи кодом.

Хотя в данном случае я настолько слабый программер, что не могу определить размеры "своего двора", как следовательно не знаю на чем по нему ездить. То ли собирать велосипед, то ли все-таки пересесть на Камаз.

 

А за совет - спасибо. С Аяксом я уже разобрался, но на досуге посмотрю плагин.

Share this post


Link to post
Share on other sites

Ой..Я наверно совсем плохой программист, ибо на первый взгляд мне показалось - легче разобраться с Аяксом, нежели разбираться в том, как переделывать этот плагин под Опенкарт. Да и с английским у меня не очень.

Share this post


Link to post
Share on other sites

Ой..Я наверно совсем плохой программист, ибо на первый взгляд мне показалось - легче разобраться с Аяксом, нежели разбираться в том, как переделывать этот плагин под Опенкарт. Да и с английским у меня не очень.

 

Всё правильно, разберитесь с ajax-ом, обычно такие задачи так и решаются

Share this post


Link to post
Share on other sites

Всё правильно, разберитесь с ajax-ом, обычно такие задачи так и решаются

поддерживаю!)

собственно магазин на этом построен (образно говоря)

главная-категория-подкатегория-товар

можно конечно, всё сразу загрузить, а чё подождёт покупатель 5 минут, ни чё с ним не станется)))

Share this post


Link to post
Share on other sites

но кажется мне, что здесь задержка в функции model
возможно getProduct() или/и getCategory()

в контроллере например так $category_info = $this->model_catalog_category->getCategory($path_id);

и так $product_info = $this->model_catalog_product->getProduct($product_id);
 

Share this post


Link to post
Share on other sites

Пример реализации функции на аяксе:

1. Задан блок id="category-block" в котором будут выводится товары с аттрибутом display:none

2. Данные передаются на метод в контроллере товара и обрабатываются на выход в массиве json

3. Доп. функции дописывайте уже по ходу смекалки...

function productByCat(cat_id) {
$.ajax({
url: 'index.php?route=product/product/getProByCat',
type: 'post',
data: 'cat_id=' + cat_id,
dataType: 'json',
success: function(json) {
if (json['success']) {
$('#category-block').css('display','block');
$('#category-block').html(json['products']);
}
}
});
}

Share this post


Link to post
Share on other sites

Собственно говоря я уже сделал рабочий вариант, другое дело  в оптимизации кода. Чуть позже я выложу здесь подробный ход мыслей с кодом для таких же чайников как я. А от профи буду ждать какашек и оптимизированного кода.

 

Я вообще программист по Дельфи и VBA. С синтаксисом рнр и явы плохо знаком, так же как и с командами. Вся моя работа в данном случае состоит скопировать откуда-то часть кода, чуть обмозговать и переделать под свои нужды. Поэтому код вроде рабочий, но думаю непотимизированный.

Хотя пока получается.

 

Я думаю, что разобрав здесь свой модуль, я наберусь неплохого опыта, ибо как заметил тут собрались все-таки "соратники". 

Вывод сделал из-того, что еще не получил ни одного поста по типу "а погуглить не судьба" или "читай матчасть", а конкретные ссылки на конкретную часть вопроса. За что и благодарю.

Share this post


Link to post
Share on other sites

 

Я вообще программист по Дельфи и VBA. С синтаксисом рнр и явы плохо знаком, так же как и с командами. Вся моя работа в данном случае состоит скопировать откуда-то часть кода, чуть обмозговать и переделать под свои нужды. Поэтому код вроде рабочий, но думаю непотимизированный.

Хотя пока получается.

 

 

Да, c такого на PHP и JS сложно переходить. Это точно. По себе знаю. :-).

Share this post


Link to post
Share on other sites

...Я вообще программист по Дельфи и VBA. С синтаксисом рнр и явы...

ява - JAVA.

JS - яваскрипт, javascript.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.