login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Datepicker - uitsluiten week dagen en specifieke dagen

Offline rpgnox - 27/09/2014 15:14
Avatar van rpgnoxPHP interesse
Ik wil dat op basis van instellingen uit mijn database bepaalde dagen niet getoond worden in de datepicker.

Ik heb nu werkende dat week dagen niet/wel worden getoond. Maar dit script nu combineren met aparte dagen die zijn ingevuld. Zou iemand mij kunnen helpen om beide functies met elkaar te combineren?

  1. <script>
  2.  
  3. //MinDate - prevent booking in past
  4.  
  5. //Disable specific dates
  6. //Dit zijn dus de dagen die niet getoond mogen worden
  7. $(document).ready(function () {
  8. var arrDisabledDates = {};
  9. arrDisabledDates[new Date('03/22/2014')] = new Date('03/22/2014');
  10. arrDisabledDates[new Date('04/04/2014')] = new Date('04/04/2014');
  11. arrDisabledDates[new Date('09/16/2014')] = new Date('09/16/2014');
  12. arrDisabledDates[new Date('09/30/2014')] = new Date('09/30/2014');
  13.  
  14. $('#txtDate').datepicker({
  15. beforeShowDay: function (dt) {
  16. var bDisable = arrDisabledDates[dt];
  17. if (bDisable) return [false, '', ''];
  18. else return [true, '', ''];
  19. }
  20. });
  21. });
  22.  
  23.  
  24. //En bovenstaande functie moet in deze onderstaande functie worden verwerkt
  25.  
  26. $(function() {
  27. $('#txtDate').datepicker({ minDate: 0, beforeShowDay:
  28. function(dt)
  29. {
  30. return [
  31. <?php if ($rowtime[2] == '0'){ ?>dt.getDay() == 1 ||<?php } ?>
  32. <?php if ($rowtime[3] == '0'){ ?>dt.getDay() == 2 ||<?php } ?>
  33. <?php if ($rowtime[4] == '0'){ ?>dt.getDay() == 3 ||<?php } ?>
  34. <?php if ($rowtime[5] == '0'){ ?>dt.getDay() == 4 ||<?php } ?>
  35. <?php if ($rowtime[6] == '0'){ ?>dt.getDay() == 5 ||<?php } ?>
  36. <?php if ($rowtime[7] == '0'){ ?>dt.getDay() == 6 ||<?php } ?>
  37. <?php if ($rowtime[8] == '0'){ ?>dt.getDay() == 0 ||<?php } ?>
  38. dt.getDay() == 10 //show fake date to close the script
  39. ? false : true];
  40. }
  41. });
  42. });
  43.  
  44.  
  45. </script>
  46.  
  47. <input type='text' id='txtDate' />


Alvast bedankt voor de hulp

1 antwoord

Gesponsorde links
Offline Thomas - 27/09/2014 22:20 (laatste wijziging 29/09/2014 11:30)
Avatar van Thomas Moderator EDIT 2: Ah, ik snap nu wat je bedoelt: je wilt zowel specifieke datums als specifieke dagen in de week uitschakelen. Ik heb het als volgt voor elkaar gekregen. Je zult alleen het datum-formaat even moeten nakijken, ik kon dit niet doen want de jQuery UI website was voor mij onbereikbaar.

  1. <?php
  2. // disable specific days: http://stackoverflow.com/questions/15400775/jquery-ui-datepicker-disable-array-of-dates
  3. // disable weekdays: http://stackoverflow.com/questions/2968414/disable-specific-days-of-the-week-on-jquery-ui-datepicker
  4.  
  5. $disableWeekDays = array(1); // 1 = mon, 6 = sat, 0 = sun
  6. $disableDays = array('2014-09-30', '2014-10-16');
  7.  
  8. header('Content-Type: text/html; charset=UTF-8');
  9. ?>
  10. <!DOCTYPE html>
  11. <html>
  12. <head>
  13. <title>datepicker disable dates</title>
  14. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  15. <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/smoothness/jquery-ui.css" />
  16. <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>
  17. </head>
  18.  
  19. <body>
  20. <div>
  21. <input type="text" name="" id="date" />
  22. </div>
  23. <script type="text/javascript">
  24. //<![CDATA[
  25. $().ready(function() {
  26. $('#date').datepicker({
  27. 'minDate': 0,
  28. 'beforeShowDay': function(date) {
  29. var show = true;
  30. <?php
  31. // did we disable weekDays?
  32. if (count($disableWeekDays)) {
  33. ?>show = show && $.inArray(date.getDay(), <?php echo json_encode($disableWeekDays) ?>) == -1;<?php
  34. }
  35. // did we disable specific days?
  36. if (count($disableDays)) {
  37. ?>show = show && $.inArray(jQuery.datepicker.formatDate('yy-mm-dd', date), <?php echo json_encode($disableDays) ?>) == -1;<?php
  38. }
  39. ?>
  40. return [show];
  41. }
  42. });
  43. });
  44. //]]>
  45. </script>
  46. </body>
  47. </html>


EDIT: verplaatst naar JavaScript forum

Heb je al geGoogled op "datepicker disable dates"?

Eerste resultaat.

Nu weet ik niet precies hoe de datapicker werkt, maar de daar gesuggereerde oplossing ziet er wel redelijk ok uit?

Waarschijnlijk wil je zo min mogelijk PHP (hard)coden in je JavaScript. Meestal / idealiter kun je dit beperken tot (in) de initialisatie van een (datepicker)object. Ik zou dat hier ook proberen indien dat mogelijk is.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s