Как правильно задать переменную и далее использовать ее в ссылках вида href (PHP)

248
08 ноября 2017, 03:31

Есть форма на которой расположены кнопки (ссылки) для скачивания, а также три выпадающих списка: "Отдел", "Месяц", "Год". Необходимо, при условии выбора определенных значений из выпадающих списков, чтобы при нажатии на кнопку скачивался именно тот файл с сервера, который соответствует выбранным условиям в списках.

Образно говоря, ссылка должна быть вида: http://ip-adress:port/statistika/dolgi/КОД_ОТДЕЛА/mm/su/КОД_ГОДА/КОД_МЕСЯЦА/file.txt, где КОД ОТДЕЛА,МЕСЯЦА,ГОДА - коды значений из наших выпадающих списков.

Как правильно создать и описать переменную каждого списка, а затем вставить в свое место в коде ссылки, чтобы при изменении значений переменной скачивался нужный нам файл?

Answer 1

В событии onchange списков сформировать нужный URL и установить его в атрибут href

jQuery(document).ready(function($) { 
  $("select").change(function() { 
    var dep = $("#department").val(); 
    var month = $("#month").val(); 
    var year = $("#year").val(); 
    if (dep === null || month === null || year === null) 
      $("#download").hide(); 
    else 
      $("#download").attr({ 
        href: 'http://myserver/dep-' + dep + 
          '/month-' + month + 
          '/year-' + year + 
          '/myfile.txt' 
      }).show(); 
  }); 
  $("#download").hide(); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<select id="department"> 
    <option disabled="disabled">Выберите отдел</option> 
    <option value="Код отдела 1">Отдел 1</option> 
    <option value="Код отдела 2">Отдел 2</option> 
    <option value="Код отдела 3">Отдел 3</option> 
</select> 
 
<select id="month"> 
    <option disabled="disabled">Выберите месяц</option> 
    <option value="Код месяца 1">Месяц 1</option> 
    <option value="Код месяца 2">Месяц 2</option> 
    <option value="Код месяца 3">Месяц 3</option> 
</select> 
 
<select id="year"> 
    <option disabled="disabled">Выберите год</option> 
    <option value="Код года 1">Год 1</option> 
    <option value="Код года 2">Год 2</option> 
    <option value="Код года 3">Год 3</option> 
</select> 
<p><a id="download" href="">Скачать</a></p>

Answer 2
    <form action="select.php" method="post">
    <p><select size="2" name="department">
    <option disabled>Выберите отдел</option>
    <option value="Код отдела 1">Отдел 1</option>
    <option selected value="Код отдела 2">Отдел 2</option>
    <option value="Код отдела 3">Отдел 3</option>
   </select></p>
    <p><select size="2" name="month">
    <option disabled>Выберите месяц</option>
    <option value="Код месяца 1">Месяц 1</option>
    <option selected value="Код месяца 2">Месяц 2</option>
    <option value="Код месяца 3">Месяц 3</option>
   </select></p>
    <p><select size="2" name="year">
    <option disabled>Выберите год</option>
    <option value="Код года 1">Год 1</option>
    <option selected value="Код года 2">Год 2</option>
    <option value="Код года 3">Год 3</option>
   </select></p>
   <p><input type="submit" value="Отправить"></p>
</form>

В итоге в PHP вы сможете извлечь из переменной $_POST ваши коды department, month и year, ну а дальше собирайте вашу ссылку. Хотя было бы удобней хранить все ваши файлы в одном каталоге, а в базу записать всю ту же информацию и к ней привязать ссылку на файл

READ ALSO
Как бы база, но не база [требует правки]

Как бы база, но не база [требует правки]

Название может быть составил не очень верное, ибо объяснить трудно

224
Bash парсинг результата команды

Bash парсинг результата команды

Привет, сколько ищу- не могу найти ответ на решение вопросаИмеется баш скрипт, который запускается с помощью php(связывается с CMS), при запуске...

307
Парсер видео youtube по ссылке

Парсер видео youtube по ссылке

Имеется давольно старый код, который парсит видео ютуба по ссылке

294
Отправка данных через html форму в MySQL

Отправка данных через html форму в MySQL

Доброго времени сутокИмеется WAMP сервер, файл index

212