За последние 24 часа нас посетили 42025 программистов и 6130 роботов. Сейчас ищут 1908 программистов ...

получить значение select php

Тема в разделе "PHP для новичков", создана пользователем yarnik94, 11 июн 2018.

  1. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Имеется простая форма с простым списком
    HTML:
    1. <form method="POST" action="/include/addtocart.php" name="form">
    2. <p id="indexp">Размер:
    3. <select name="size" id="size"  >
    4. <option value="41">41</option>
    5. <option value="42">42</option>
    6. <option value="43">43</option>
    7. <option value="44">44</option>
    8. <option value="45">45</option>
    9.  
    10. </p>
    11. </form>
    Таким образом я пытаюсь взять значение выбранного размера
    Код (Javascript):
    1.  var  size = $('#size :selected').text();
    А выводит он только 1 (41) , какой бы я размер не выбрал,в чем косяк?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    В какой момент это должно происходить? При отправке формы, при выборе пользователем определенного пункта? И методом .text() вы берете не значение, а текстовое описание, хотя в конкретном случае это не важно, т.к. они у вас совпадают. А вообще, именно для значений элементов формы, используется метод .val()
     
  3. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Происходит это при нажатии на кнопку купить,получается при отправке формы.
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Значит в обработчике события клика по этой кнопке и нужно получать значение.
    Код (Javascript):
    1. $('button_selector').on('click', function(){
    2.   var size = $('#size').val();
    3. });
    "button_selector" - заменить на соответствующий селектор кнопки: id, class, etc.
     
  5. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Код (Javascript):
    1. $('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){
    2.              
    3. var  tid = $(this).attr("tid");
    4. var size = $('#size').val();
    5. ;
    6.  
    7. $.ajax({
    8.   type: "POST",
    9.   url: "/include/addtocart.php",
    10.   data: "id="+tid+"&size="+size,
    11.   dataType: "html",
    12.   cache: false,
    13.   success: function(data) {
    14.   loadcart();
    15.       }
    я так и делал результат не поменялся(
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Выведите алертом значение сразу после его получения. Или будет правильное значение, или есть еще что-то, чего вы не показали.
    https://jsfiddle.net/o4avztnL/
     
  7. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Через алерт показывает как надо, а что именно я не доглядел пока не пойму(
     
  8. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    Код (Javascript):
    1. $('#size option:selected').text();
    --- Добавлено ---
    Код (Javascript):
    1. var size = $('#size option:selected').val();
     
  9. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Так пробовал в самом начале результат тот же
     
  10. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    в пятой строке лишний сивол
     
  11. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Я его заметил и убрал , а результат тот же(
    --- Добавлено ---
    XEAK85Q1M1Y.jpg
    А то что у меня 20 неуникальных айдишников , так как я вывожу через echo товары из базы поочередно ,может повлиять на результат?
     
  12. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    А вы как думаете, если учесть, что id - это уникальный идентификатор? Т.е. может быть только у одного единственного элемента.
    --- Добавлено ---
    P.S. За то, что умеете работать с консолью, можно поставить вам плюс, но за то, что не знаете основ HTML - жирный минус ;)
     
  13. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Я вывел один товар, получается айди уникальный , но результат тот же , значит дело не в этом.
    И 3-4 дня назад все работало.
     
  14. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Утверждение не верное. Правильно было сказать, что "значит дело не только в этом". Но то, что причина в том числе и в ID-шниках - 150% из ста.
     
  15. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    А можно сделать так чтоб он сам айди присваивал типа size 1 ,size 2?
     
  16. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @yarnik94, а чем классы не устраивают? Почему не установить один класс для всех select-ов, один класс для кнопок "Купить" и т.д.?
     
  17. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    да
    PHP:
    1. $i = 1;
    2. echo 'size'.$i;
    3. $i++;
    4. echo 'size'.$i;
     
  18. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Если id в javascript мы вставляли так "#size", то класс ".size"?
     
  19. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @yarnik94, какое имя вы дадите классу - значения не имеет. Главное то, что этот класс может быть у нескольких элементов, а ID только у одного.
    --- Добавлено ---
    https://jsfiddle.net/o4avztnL/1/
     
  20. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Поменял на класс,и через алерт как Вы мне подсказали работает ,а бд пишет 41 ,а может быть ошибка в обработчике в файле где записывается ,выбранный размер?
     
  21. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    И это может быть. Но я не являюсь даже дальним родственником Ванги, чтобы утверждать наверняка. Смотрите в консоли (закладка Network, фильтр XHR), какие данные передаются в ajax-запросе .
     
  22. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    id товаров передаются а size пустой
     
  23. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Показывайте измененный код JS
     
  24. yarnik94

    yarnik94 Новичок

    С нами с:
    17 мар 2018
    Сообщения:
    23
    Симпатии:
    0
    Код (Javascript):
    1. $('.add-cart-style-list,.add-cart-style-grid,.add-cart,.random-add-cart').click(function(){
    2.              
    3. var  tid = $(this).attr("tid");
    4. var size = $('.size').val();
    5.   alert(size);
    6. $.ajax({
    7.   type: "POST",
    8.   url: "/include/addtocart.php",
    9.   data: "id="+tid+"&size="+size,
    10.   dataType: "html",
    11.   cache: false,
    12.   success: function(data) {
    13.   loadcart();
    14.       }
    15. });
    16.  
    17. });
     
  25. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    ... и разметку одного блока товаров
    --- Добавлено ---
    Проблема в этом - var size = $('.size').val();