За последние 24 часа нас посетили 22768 программистов и 1225 роботов. Сейчас ищут 706 программистов ...

Присвоение переменной php используя OnChange

Тема в разделе "PHP для новичков", создана пользователем Chuzhoy, 9 сен 2019.

  1. Chuzhoy

    Chuzhoy Новичок

    С нами с:
    8 сен 2019
    Сообщения:
    8
    Симпатии:
    0
    Всем доброго времени суток.
    Как присвоить значение переменной php используя OnChange в Select?
    Из селекта name="marka" взять динамично значение value и записать в переменную, не отправляя форму на обработчик.

    <select class="first__searchpanel__select" name="marka">
    <option>Все марки</option>
    <option value="BMW">BMW</option>
    <option value="Mercedes">Mercedes</option>
    </select>
    <select class="first__searchpanel__select model" name="model">
    <option>Все модели</option>
    <option value="X5" data-marka="bmw">X5</option>
    <option value="CLS" data-marka="mercedes">CLS</option>
    <option value="X3" data-marka="bmw">X3</option>
    <option value="X6" data-marka="bmw">X6</option>
    </select>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    никак.... почитайте что такое php и что такое js и что где выполняется
    .... можно Ajax запросом передавать в php значение при каждом onShange но мне кажется вы совсем не то хотели )))
     
  3. Chuzhoy

    Chuzhoy Новичок

    С нами с:
    8 сен 2019
    Сообщения:
    8
    Симпатии:
    0
    Ну а как то можно взять переменную js и перевести в php? Может кто помочь? Готов символически заплатить
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    какая окончательная цель?
     
  5. Chuzhoy

    Chuzhoy Новичок

    С нами с:
    8 сен 2019
    Сообщения:
    8
    Симпатии:
    0
    У меня сайт на wp, и в селекты выводятся категории, Марка машины и модель. При выборе определённой марки машины у меня подгружается модели(это ещё все хардкоде) марка имеет значение(data-marka=“Bmw”), благодаря которому подгружаются на неё модели. При выборе марки машины в первом селекте, нужно из выбранной марки взять значение, к примеру term_id и записать в переменную, которая будет подставляться в data-marka что бы подгрузить модели на определенную марку.
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Ещё раз - почитайте что и зачем (php & js)
    Не нужно вам никаких проебразований, смотрите ajax запросы
     
  7. DarkU

    DarkU Активный пользователь

    С нами с:
    15 июл 2013
    Сообщения:
    12
    Симпатии:
    2
    1. Сохранить можно.
    2. После сохранения, PHP все убирает из памяти и при отправление формы у вас НИЧЕГО не будет в той "переменно".
    3. Вы делаете очень простые вещи. У вас есть вариант "как должно быть" и "построить велосипед".
    План действий по "как должно быть":
    - 1 - создать таблицу, которая имеет все марки авто;
    - 2 -создать таблицу которая имеет все модели марок с ID марки к которой принадлежит эта модель (лучше использовать foreing key)
    - 3 - создать форму, которая при загрузке получает ВСЕ марки авто.
    - 4 - написать скрипт, которые будет отлавливать изменения по полю селектора всех марок авто. Список должен состоять из value=make_id. Все option value и один которые первый c value = 0.
    - 5 - проверять на 0 значение как JS (фронтенде) так и на PHP
    - 6 - что бы это все работало как вы хотите, вам нужно написать AJAX запрос на сервер. Его логика примерно такая: получить ID марки авто и выбрать все модели, которые = этой марке с таблицы моделей авто (шаг №2) и вставить все в следующий селектор, то что по выбору МОДЕЛЕЙ.
    - 7 - В результате вы получите что-то такое при отправки формы: [make_id => 10, model_id => 99].

    План действий по "построить велосипед" у вас уже есть.
     
    Chuzhoy и Valick нравится это.
  8. Chuzhoy

    Chuzhoy Новичок

    С нами с:
    8 сен 2019
    Сообщения:
    8
    Симпатии:
    0
    Спасибо! Буду пробовать