Avatar billede Xelot Juniormester
06. marts 2020 - 11:22 Der er 8 kommentarer og
1 løsning

Opdatere en Jquery værdi igennem Javascript

Er ved at implementere denne jQuery kalender på min hjemmeside: https://xdsoft.net/jqplugins/datetimepicker/

Jeg vil gerne opnå at når en bruger klikker på en html knap, så skifter adressen automatisk i kalenderen.

Knappen kan f.eks. indeholde:
- 1 time
- 1 dag
- 1 uge
- 2 uger

Kan dog ikke rigtig greje hvordan jeg skal gribe det an.. Kan du hjælpe ?

$.datetimepicker.setLocale('da');

$('#datetimepicker').datetimepicker({
  dayOfWeekStart: 1,
  lang: 'da',
  inline: true,
  scrollMonth: false,
  timepicker: false,
  startDate: new Date(document.getElementById('timeForAlert').value),
  onSelectDate: function() {
    userHasChosen();
  },
  onSelectTime: function() {
    userHasChosen();
  }
});

$('#datetimepicker4').datetimepicker({
  format: 'Y-d-m'
});

$('.some_class').datetimepicker();

function makeReadable(val) {
  var mydate = new Date(val);
  var hour = document.getElementById('hour').value;
  var minute = document.getElementById('minutes').value;
  var str = mydate.getFullYear() + '-' + ("0" + (mydate.getMonth() + 1)).slice(-2) + '-' + ("0" + mydate.getDate()).slice(-2) + ' ' + hour + ':' + minute + ':00';
  return str;
}

function oneday(val) {
  document.getElementById('datetimepicker').value = val;
  document.getElementById('timeForAlert').value = makeReadable(val);
  $.datetimepicker();
  stopReload();
}
Avatar billede Xelot Juniormester
06. marts 2020 - 11:24 #1
Jeg skal måske lige tilføje at der er tale om værdien 'startDate' som skal opdateres i Jquery
Avatar billede Slater Ekspert
06. marts 2020 - 11:47 #2
Du vil bare ændre den dato kalenderen står på dynamisk?

Ifølge dokumentationen på den side du linker til, skal du bare sætte dens value. F.eks. med $('#datetimepicker').val('nydatoher');
Avatar billede Xelot Juniormester
06. marts 2020 - 12:05 #3
Ja, jeg vil gerne ændre i datoen på kalenderen, og du er inde på noget af det rigtige - men jeg kan ikke få den til at ændre datoen ud fra dit forslag.

Jeg har en knap med følgende html som sætter datoen med PHP:

<button type="button" class="btn btn-default" onclick="oneday('<? echo date("Y-m-d H:i", strtotime("+ 1 day"));?>')">I morgen</button>

Ved klik, åbner den følgende JS:

function oneday(val){
    document.getElementById('datetimepicker').value = val;
    document.getElementById('timeForAlert').value = makeReadable(val);
    $('#datetimepicker').val('2020-03-08'); //Manuel indtastet dato for test
    stopReload();
    }
Avatar billede michael_stim Ekspert
06. marts 2020 - 13:21 #4
Du blander serverside (PHP) og clientside (javascript) sammen.

<button type="button" class="btn btn-default" onclick="oneday('<? echo date("Y-m-d H:i", strtotime("+ 1 day"));?>')">I morgen</button>
.
Avatar billede Slater Ekspert
06. marts 2020 - 13:33 #5
Hvad er der galt med det, michael_stim? Det vil da virke fint, uagtet at det måske ikke er specielt kønt eller letlæseligt.
Avatar billede Xelot Juniormester
06. marts 2020 - 13:36 #6
@michael_stim

Jeg ved det..

PHP angiver kun den indledende dato som skal behandles senere.

Det er ikke noget problem at behandle datoen i JS. Problemet er at få det over i Jquery 😩

Derfor angiver jeg datoen midlertidig i funktionen som jQuery skal læse, bare for at få Jquery til at reagere..
Avatar billede Slater Ekspert
06. marts 2020 - 13:38 #7
Jeg fandt ud af det. Det er ikke særlig godt dokumenteret, men man skal bruge constructoren med et 'value' argument.

http://snip.kilolima.dk/#/oG3jOty
Avatar billede Xelot Juniormester
06. marts 2020 - 14:01 #8
Godt set Slater 👍

Har fået min funktion til at gøre følgende:

    $('#oneday').click(function() {
      var tomorrow = new Date()
      tomorrow.setDate(tomorrow.getDate() + 1)
        $('#datetimepicker').datetimepicker({
            value: tomorrow
        });
    });

Det virker som det skal 😄 Super hjælp 🍻
Avatar billede michael_stim Ekspert
06. marts 2020 - 15:47 #9
#5
My bad, så bare PHP og Javascript sammen og advarselslamperne begyndte at blinke. Havde ikke læst grundigt nok.

Men godt i fik det til at fungere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester