#javascript #jquery #ajax
Вопрос:
В настоящее время моя ссылка на api является динамической, если выбрать текущий год и месяц.
Пример: APILINK…/202109
Эта часть в порядке… Но то, что я хочу сделать, это изменить последнюю часть ссылки API (Год и месяц) с помощью указателя даты, и я не уверен, как я могу это сделать.
Мой текущий Код:
const timehsheetUrl = "API LINK"
const today = new Date();
const date = today.getFullYear() ('0' (today.getMonth() 1)).slice(-2);
const settings = {
"async": true,
"crossDomain": true,
"url": timesleetUrl date,
"method": "GET",
"headers": {}
}
Комментарии:
1. Какой датапикер вы используете?
2. @MukeshSinghThakur В настоящее время по умолчанию используется HTML <тип ввода=»дата»/> средство выбора даты. Но я предполагаю, что если я хочу просто указать год и месяц, это должен быть пользовательский выбор даты?
Ответ №1:
Нет, вам не нужно использовать плагин datepicker, в то время как плагин более удобен.
Вот пример ввода даты в формате HTML по умолчанию.
const timesleetUrl = "API LINK";
const today = new Date();
function urlDateSuffix(_date) {
return _date.getFullYear() ('0' (_date.getMonth() 1)).slice(-2);
}
let settings = {
"async": true,
"crossDomain": true,
"url": timesleetUrl urlDateSuffix(today),
"method": "GET",
"headers": {}
}
console.log(settings);
$(function() {
$('#datepicker').change(function() {
settings.url = timesleetUrl urlDateSuffix(new Date(this.value));
console.log(settings);
alert(settings.url);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="date" id="datepicker">
Комментарии:
1. Есть ли способ изменить ссылку после загрузки html-страницы? Потому что ваш код работает идеально, но проблема в том, что содержимое не меняется, а регистрируется.
2. @Gabe В части инициализации —
let settings = {...}
—settings.url
будет начинаться сtimesleetUrl urlDateSuffix(today)
🙂3. О, извините, позвольте мне поправиться. Я имею в виду, что ссылка успешно меняется, но я использую диаграммы Apex с этой функцией. Поэтому я не уверен, почему после первой загрузки содержимого я не могу обновить уже отрисованные диаграммы.
4. @Gabe
document.onload = function(){...}
может быть первым шансом изменить исходный URL-адрес. В вашем случае я не уверен, как вы написали код для ApexChart, но, по моему опыту, метод обновления набора данных будет существовать.
Ответ №2:
Это простое в использовании средство выбора даты jQuery.
При выборе даты сценарий должен возвращать месяц и год выбранной даты.
Сохраните выходные данные в переменной и формате. Приведенный ниже код поможет вам
// html markup, use jQuery UI CDN in head section
<input type="text" id="calendar" name="date1"/>
// html markup
<script>
$('#calendar').datepicker({
dateFormat: 'yy-m-d',
inline: true,
onSelect: function(dateText, inst) {
var date = $(this).datepicker('getDate'),
day = date.getDate(),
month = date.getMonth() 1,
year = date.getFullYear();
// alert(day '-' month '-' year);
// this is your result
alert( "api link is " "APILINK.../" year month);
}
});
</script>