@9StarRu

Как отобразить второй select на основе данных выбранных в первом select?

Получаю JSON ответ в таком виде:

[{"coin":"btc","name":"Bitcoin","date":"1367107200"},{"coin":"eth","name":"Ethereum","date":"1438905600"},{"coin":"bnb","name":"Binance Coin","date":"1505520000"}]


Далее даю возможность пользователю выбрать валюту с помощью select

<form class="form-inline" method="POST" action="result.php">

<select name="coin_name" class="form-control">
<?php
foreach($coins as $item) {
  echo '<option value="' . $item['coin'] . '">' . $item['name'] . '</option>';
}
?>
</select>

<select name="date" class="form-control">
<?php
foreach($coins as $item) {

  $times = date('m-d-Y', $item['date']);

  echo '<option value="' . $item['date'] . '">' . $times . '</option>';
}
?>
</select>

</form>


Json отдает еще и стартовую дату в формате 1367107200

Как максимально удобно и просто дать возможность пользователю выбрать дату, где начальной датой должна быть метка $item['date'] которая в каждом случае отдает индивидуальную старт дату, пример, 1367107200?

Как сделать так, чтобы при выборе конкретной монеты в первом select, во втором селекте с датами (возможно календарем) отображались даты относящиеся к данной монете?

Т.е. некий календарь или список: числа месяца, месяц и год со стартовой датой из $item['date'], чтобы далее отправить post запрос с параметрами coin_name и date для дальнейшей обработки.

a44028360e3b7ae366a549be07e4c25a.png

В post можно отправить дату как есть, пример, 01-12-2020
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@Barmunk
Если я правильно понял вопрос в пятницу вечером, то нужно исходить из того, что php это серверный язык, поэтому скрипт отработал, вывел какие-то данные на клиент и остановился. Далее появляются варианты:

Дедовский способ 1
Посетитель выбрал монетку, отправили запрос на сервер, фильтранули, вывели даты.

Дедовский способ 2
Подготовили сразу все варианты монеток-даты и вывели их заранее под display=none, далее c помощью js включаем нужные.

Современный подход
Переносим всю логику на клиент, а результат отправляем с помощью Ajax на сервер
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы