Имеется простая форма с простым списком HTML: <form method="POST" action="/include/addtocart.php" name="form"> <p id="indexp">Размер: <select name="size" id="size" > <option value="41">41</option> <option value="42">42</option> <option value="43">43</option> <option value="44">44</option> <option value="45">45</option> </select> </p> </form> Таким образом я пытаюсь взять значение выбранного размера Код (Javascript): var size = $('#size :selected').text(); А выводит он только 1 (41) , какой бы я размер не выбрал,в чем косяк?
В какой момент это должно происходить? При отправке формы, при выборе пользователем определенного пункта? И методом .text() вы берете не значение, а текстовое описание, хотя в конкретном случае это не важно, т.к. они у вас совпадают. А вообще, именно для значений элементов формы, используется метод .val()
Значит в обработчике события клика по этой кнопке и нужно получать значение. Код (Javascript): $('button_selector').on('click', function(){ var size = $('#size').val(); }); "button_selector" - заменить на соответствующий селектор кнопки: id, class, etc.
Код (Javascript): $('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){ var tid = $(this).attr("tid"); var size = $('#size').val(); ; $.ajax({ type: "POST", url: "/include/addtocart.php", data: "id="+tid+"&size="+size, dataType: "html", cache: false, success: function(data) { loadcart(); } я так и делал результат не поменялся(
Выведите алертом значение сразу после его получения. Или будет правильное значение, или есть еще что-то, чего вы не показали. https://jsfiddle.net/o4avztnL/
Код (Javascript): $('#size option:selected').text(); --- Добавлено --- Код (Javascript): var size = $('#size option:selected').val();
Я его заметил и убрал , а результат тот же( --- Добавлено --- А то что у меня 20 неуникальных айдишников , так как я вывожу через echo товары из базы поочередно ,может повлиять на результат?
А вы как думаете, если учесть, что id - это уникальный идентификатор? Т.е. может быть только у одного единственного элемента. --- Добавлено --- P.S. За то, что умеете работать с консолью, можно поставить вам плюс, но за то, что не знаете основ HTML - жирный минус
Я вывел один товар, получается айди уникальный , но результат тот же , значит дело не в этом. И 3-4 дня назад все работало.
Утверждение не верное. Правильно было сказать, что "значит дело не только в этом". Но то, что причина в том числе и в ID-шниках - 150% из ста.
@yarnik94, а чем классы не устраивают? Почему не установить один класс для всех select-ов, один класс для кнопок "Купить" и т.д.?
@yarnik94, какое имя вы дадите классу - значения не имеет. Главное то, что этот класс может быть у нескольких элементов, а ID только у одного. --- Добавлено --- https://jsfiddle.net/o4avztnL/1/
Поменял на класс,и через алерт как Вы мне подсказали работает ,а бд пишет 41 ,а может быть ошибка в обработчике в файле где записывается ,выбранный размер?
И это может быть. Но я не являюсь даже дальним родственником Ванги, чтобы утверждать наверняка. Смотрите в консоли (закладка Network, фильтр XHR), какие данные передаются в ajax-запросе .
Код (Javascript): $('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){ var tid = $(this).attr("tid"); var size = $('.size').val(); alert(size); $.ajax({ type: "POST", url: "/include/addtocart.php", data: "id="+tid+"&size="+size, dataType: "html", cache: false, success: function(data) { loadcart(); } }); });