![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Mastodont |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 347 Регистрация: 18.3.2007 Репутация: нет Всего: 1 |
На странице товара интернет-магазина выводится нормальная цена товара, цена со скидкой, а также списки <select> для выбора ширины и высота матраса.
Также есть mysql таблица, в которой содержатся отношения [id товара] - [ширина] - [высота] - [цена] - [цена со скидкой] При первоначальной загрузке страницы в select ширины попадает минимальное значение ширины из таблицы для данного товара. Чтобы сформировать список select высот товара, из таблицы выбираются все высоты для данного id товара и выбранной (в данном случае минимальной) ширины товара. Соответственно, в поля цены и цены со скидкой выводятся цифры, соответствующие выбранным в данный момент в списках select ширины и высоты Затем интереснее: при изменении ширины меняется select высот - он заполняется новыми "ширинами" для выбранной высоты. Это работает Далее на основании вновь измененной ширины и высоты должны выводится новые цены. Так вот тут не работает. Происходит такая вещь: при выборке цены используется не новая ширина, а ровно предыдущая. То есть js-код width_matras = document.getElementById('matras_width_select').value обновляет переменную ровно при следующем перевыборе списка ширины. Кто знает, почему ровно предыдущая? почему js не может сразу определить значения select-списка, только что замененного через ajax? Привожу код: select'ы ширины и высоты на странице товара
Сам ajax находится в конце <head>
И php-код, исполняющий ajax-запрос
Это сообщение отредактировал(а) Mastodont - 19.6.2013, 17:50 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
||||||
|
|||||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 14 Всего: 55 |
Проблема некоторых вопрошающих в том, что они выкладывают кучу ненужной информации и недостаточно нужной.
Если у Вас проблемы с JS, то PHP тут вообще ни при чем. Только место занимает. Ваши коды у себя все равно никто запустить не сможет и то, что они выводят, придется "экстрасенсить". Картинка вообще непонятно зачем =) Можете привести код select-ов из исходного кода страницы? Можете показать, что выходит после ajax-запроса (как меняется select) - так же из исходного кода страницы. В общем только то, с чем работает Ваш JS-код, без лишнего. А так же то, каким образом Вы получаете ширину после ajax-запроса. Ajax-запрос происходит по какому событию? Изменение значения select? Скорее всего проблема в том, что Вы не учли тот факт, что запрос асинхронный. Это сообщение отредактировал(а) Arantir - 19.6.2013, 18:10 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
valiko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 22.12.2011 Репутация: нет Всего: нет |
Привет. Я думаю что проблема в том, что вы генерируете список для select, а его самого не обновляете.
Вариант 1. Генерируйте все вместе (select и options), таким образом предыдущее значение стереться с DOM. Вариант 2. Создайте div на JavaScript-е, добавьте в него новый select и удалите старый. Что то вроде этого скрипта. Надеюсь помог решить проблему
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
Mastodont |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 347 Регистрация: 18.3.2007 Репутация: нет Всего: 1 |
Вариант 1 и вар. 2 что то не прокатил, хотя может не совсем правильно их использовал, так как js знаю чуть больше, чем основы.
Но я добавил в select пункт "выбрать высоту", что создало необходимость так или иначе выбирать какой либо его пункт. Теперь все ок ![]() |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |