05.01.2018, 08:54
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Прошу совета по выбору способа отображения страницы
Всем привет.
Делаю страницу редактирования и добавления товаров. Не могу придумать как отображать товары для редактирования. Вверху есть список номеров страниц с товарами. По клику на него, должен отобразиться нужный товар, без перезагрузки страницы.
Я предполагал это сделать так:
1. По нажатию на цифры, очищается контент
2. Отправляется ajax запрос с номером товара в обработчик php.
3. Обработчик делает запрос к БД, и берет все данные для этого товара и с помощью строки echo отдает обратно.
4. succes принимает строку, раскладывает и формирует новый див с отображением нового товара на данной странице.
вопрос: не долго ли так будет появляться отображение товара? и может быть есть какие более рациональные методы? Я в программировании любитель, поэтому прошу вашего совета.
|
|
05.01.2018, 08:59
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
В общем-то это не такой большой объем, чтобы отрисовка данных на клиенте занимала длительное время. Гораздо большее время может потребоваться на ответ сервера, причем совсем не связанное с обработкой запроса на сервере.
Вот только навигатор - товар/ссылка как-то не очень. Можно конечно и так, но это ведь практически вслепую. Если есть товары в базе и речь об их редактировании, то гораздо удобнее иметь список товаров как минимум с их названиями. А также возможность выбора категории товаров, если они разделены по категориям. Или нет?
И какое отношение к редактированию товара (а это администрирование базы данных) имеет отношение корзина?
|
|
05.01.2018, 09:53
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Меня тоже заботит возможное частое ожидание ответа от сервера.
Список с номерами страниц я сформировал так:
каждая цифра страницы содержит в ссылке id товара ( по нему я и буду искать в бд)
<a href="javascript:goto_item(501055);">1</a><a href="javascript:goto_item(501056);">2</a>
по поводу корзины: это полезная функция. когда клиент выберет товар на сайте поставщика- то по его просьбе, товар можно добавить в каталог и сразу же положить в корзину клиенту
а можно ли как то сделать один раз выборку товаров из бд, чтобы потом просто отображать их по кликам? чтобы не использовать запрос ajax каждый раз. Но имея ввиду, что товаров может быть от нескольких штук до 1000 в одной категории
|
|
05.01.2018, 10:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от kupidon
|
каждая цифра страницы содержит в ссылке id товара ( по нему я и буду искать в бд)
|
Это всего лишь идентификатор, параметр запроса в базу. Что может сказать ссылка с текстом 1, 2, ... в навигаторе при редактировании товара? Более того, формой предполагается и возможность переноса товара из категории в категорию (судя по картинке), но при этом форма вообще не отображает какой категории принадлежит товар.
Дело хозяйское, делайте как считает нужным, но может сперва опросить тех кто занимается товарами? Будет ли удобным такое администрирование базы товаров? Вряд ли вы получите положительный ответ.
Сообщение от kupidon
|
по поводу корзины: это полезная функция. когда клиент выберет товар на сайте поставщика- то по его просьбе
|
Какое отношение к редактированию товара в базе, а это его характеристики, могут иметь действия клиента на странице товара? Вы ничего не путаете? Если бы речь шла о редактировании шаблона карточки товара на странице сайта, тогда да, вы можете редактировать к примеру стиль кнопки "В корзину", ее положение и т.п. Но вы то чем на данный момент занимаетесь - описанием товара в базе или шаблоном страницы?
Есть база с товарами, которые принадлежат категориям. Это как книжку листать руководствуясь оглавлением. Можно выбрать раздел, а нем страницы, среди которых выбрать конкретную. Так и с товарами - можно выбрать категорию товаров, получив список товаров в категории. Данный список можно выводить с различными сортировками и фильтрами. Все это для того, чтобы удобно было в случае необходимости найти нужные товары для редактирования. При этом некие параметры товаров можно изменять сразу в этой таблице не для каждого отдельно, а для целого набора. Ну например скрыть часть товаров. Из этого списка можно вызывать товар для редактирования, то есть всех его параметров.
В этом случае карточка товара отображает список категорий с выбранной категорией, которой товар принадлежит. Смена категории в этом списке будет означать перенос товара в новую категорию. Можно и иначе сделать, что не принципиально. Но должна же быть для администратора наглядность. Где она у вас? Вместо этого у вас почему-то важна корзина, которая к данной задаче вообще отношения не имеет. В контексте редактирования характеристик товара "корзина" может иметь только одну возможную интерпретацию - да/нет добавлению товара в корзину.
Сообщение от kupidon
|
а можно ли как то сделать один раз выборку товаров из бд, чтобы потом просто отображать их по кликам? чтобы не использовать запрос ajax каждый раз.
|
Не понял, кешировать на время или о чем это? Если делать так как я писал, то есть выбрали товары, получили список их, то он уже на клиенте, запрашивать его вторично нет необходимости. А запрос карточки товара, это можно организовать отдельно и иметь отдельную панель, закрыв которую оставаться в списке товаров.
|
|
05.01.2018, 10:46
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Сообщение от laimas
|
Дело хозяйское, делайте как считает нужным, но может сперва опросить тех кто занимается товарами? Будет ли удобным такое администрирование базы товаров? Вряд ли вы получите положительный ответ.
|
Я тоже отношусь к тем кто администрирует товары )). Если вы присмотритесь к моей картинке, то на странице три вкладки, первая редактирует общие параметры, вторая редактирует категории , третья - товары в выбранной категории. Ну это не важно...
Чтобы вы имели представление- это совместные покупки. То есть среди возможности выбрать по наличию из каталогов, покупатель может заглянуть на сайт поставщика и попросить добавить товар в каталог и положить ему в корзину, например: платье размер 56. Следовательно, я добавляю новую позицию в товары, и сразу положу ее заказчику...
Ну это тоже не важно)
Меня больше интересует дело про список товаров. На второй вкладке я выбрал категорию, страница обновилась , перехожу на вкладку редактирования товаров. Допустим там слева сделаю список названий. (но ведь их может быть и 1000 штук). А что потом? как сделать отображение характеристик выбранного товара? Все равно использовать ajax?
ps спасибо за Ваше внимание к моему вопросу
|
|
05.01.2018, 10:50
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Я не изобретаю велосипед, я лишь усовершенствую то, с чем работали более 4=х лет. К сожалению исходники закодированы, поэтому приходится делать подобие с более удобным интерфейсом.
|
|
05.01.2018, 11:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от kupidon
|
покупатель может заглянуть на сайт поставщика и попросить добавить товар в каталог и положить ему в корзину, например: платье размер 56.
|
Может быть и так, но как можно покупателю давать доступ к редактированию характеристик товаров имеющихся в базе? Речь то об этом идет. Что касается закладок редактирования категорий, то опять таки не понятно причем тут закладка и перенос товара из категории в категорию. В общем ничего не понятно.
Я много раз имел дело с интернет магазинами. Не смотря на различие политики торговли каждого, есть и общее, это удобство администрирования товаров. Что вы делаете не понятно - редактирование доступно кому-то, кроме просьбы добавить в корзину (пусть понятно что это такое). Можно еще понять добавление нового товара кем-то, и то по жестким правилам, но редактирование, ... как-то не вяжется.
Сообщение от kupidon
|
Допустим там слева сделаю список названий. (но ведь их может быть и 1000 штук).
|
То есть поместить ссылки 1, 2, 3, ... для 1000 товаров предлагая перещелкать все, пока не попадем на нужный, который окажется в ссылке под 999, это удобно?
Список товаров не просто вываливается, а задается фильтрами, сортируется. То есть нужные товары всегда первые даже при постраничной навигации. А также для администрирования обязательно (по крайней мере у тех заказчиков, которые понимают толк в торговле) добавляют возможность поиска товара: по известному идентификатору/артикулу/названию, по всей базе/конкретной категории. Результат поиска, это карточка товара.
В списке товаров, например, его название, это ссылка, которая делает запрос к серверу, который возвращает карточку товара. Разместить же эту карточку/форму на странице не удаляя открытый список товаров, это чисто техническое решение и несложное.
|
|
05.01.2018, 11:24
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Сообщение от laimas
|
но как можно покупателю давать доступ к редактированию характеристик товаров имеющихся в базе?
|
это категорически нет...доступ имеют 5-6 человек, только те кто организует закупки. У покупателей такой возможности нет. они могут только выбрать параметр и положить в корзину....
Сообщение от laimas
|
То есть поместить ссылки 1, 2, 3, ... для 1000 товаров предлагая перещелкать все, пока не попадем на нужный, который окажется в ссылке под 999, это удобно?
|
это не удобно, но иногда требуется пройтись по товарам, чтобы везде поменять цену или отключить показ каких либо товаров.
форма поиска будет обязательно. список наверное тоже разумный вариант. наверное так и сделаю.
Теперь технически: делаю ajax запрос, обработчик делает выборку характеристик их БД для нужного id. Как эти характеристики вернуть скрипту в success?
Я вот так полагал: допустим делаю строку в обработчике:
echo "название**цена**ссылка на фото1**..."
success получает эту строку, разделяет данные используя выбранный разделитель ** и формирует новый html код карточки товара
Что-то мне подсказывает, что такой метод рабочий, но не очень правильный . как правильно вернуть данные из обработчика обратно в js ?
|
|
05.01.2018, 11:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от kupidon
|
но иногда требуется пройтись по товарам, чтобы везде поменять цену или отключить показ каких либо товаров
|
Ну а я вам о чем толкую? Разве для этих целей удобен навигатор? В этом случае удобны табличные данные, как форма имеющая всего лишь наборы флажков/полей ввода ограниченных характеристик. Видим в списке N-товаров, причем в удобной для идентификации форме: название, цена, флажки. Выбрали, изменил у нужных товаров параметры, отправили форму, у всех выбранных изменится.
Щелчок же по названию товара, это запрос, который возвращает форму-карточку товара. При этом со списком можно поступить:
а) свернуть его, разместив форму под списком. После редактирования товара и отправления формы, если нет ошибок, форма удаляется, список раскрывается, измененные параметры, если они отображаются в списке, например тоже название, изменяется на новое, ну и можно добавить статус - "обновлено". Одновременно можно вывести и сообщение "Товар Name обновлен ...".
б) показать форму-карточку в новом слое над списком. Все остальное как и для а).
А вот "success получает эту строку, разделяет данные используя выбранный разделитель ** и формирует новый html код карточки товара" геморрой, зачем?
|
|
05.01.2018, 11:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Вообще - параметры sql-таблицы, то есть их характеристики, могут служить источником для конструктора, который будет автоматически формировать все необходимое. Конструктор - это, определение полей таблицы отображаемых в списках, параметры фильтров для отображаемых полей, параметры сортировки списка. Конструктором можно определить различные наборы списков под конкретные задачи, которые можно хранить как пресеты. Все эти наборы можно хранить и на клиенте в локальном хранилище, можно и в базе.
|
|
|
|