Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как добавить второй код к первому, чтобы объекты хранились в json файле а не массиве? (https://javascript.ru/forum/misc/78332-kak-dobavit-vtorojj-kod-k-pervomu-chtoby-obekty-khranilis-v-json-fajjle-ne-massive.html)

nathan111777 28.08.2019 21:50

вы можете помочь слепить мне эти два кода? я со своим уровнем знаний JS на данный момент не смогу это сделать...Я только учусь...Тоесть файл eshop.js обьеденить с кодом который указал по ссылке.

laimas 29.08.2019 04:03

Цитата:

Сообщение от nathan111777
вы можете помочь слепить мне эти два кода?

Нет, лепить я ничего не стану. Нужно не слепливать, а добавлять фильтр в код, используя тот подход, который у вас уже есть. Это потому, что неизвестно чего вы добиваетесь, а "второй код", то есть фильтр, не будет работать, например, в осликах по версию 11 включительно. А если вы хотите поддержки, то слепив, получите вместо нее проблемы потому как фильтр использует новшества JS.

А если я бы писал, то изменил бы все, в первую очередь начиная со структуры данных товаров, ибо хранить вы упорно хотите все в куче, о возможностях сервера вообще не думаете, а добавив фильтр, а потом еще захочется его и запоминать, и это все означает "шмалять" постоянно весь объект, который в итоге у вас вполне может быть не хилым, а это как-то не по людски.

Поэтому, пока попробуйте сами на своем "первом коде", выкинув и забыв о втором (в плане кода). В своем коде нужно только добавить одну вещь о чем я писал выше - в событии загрузки документа нужно получать ajax запросом товары, присваивая результат переменной, с которой потом вывод товаров и фильтр будут работать. То есть как я писал выше, вывод товаров это отдельная функция без ajax запроса.

В эту функцию, в свой код (for (var key in data) ....) нужно добавить проверку по параметрам выбранным в элементах фильтра. При изменениях выбора в фильтре опять производить вызов функции вывода товаров. Вот и будет у вас фильтрация.


Часовой пояс GMT +3, время: 07:36.