Выделение конкретной даты в jQuery datepicker - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть средство выбора даты, которое, если row Count равно 5 или больше 5, дата в средстве выбора даты будет выделена красным цветом, а если row Count равно 3 или больше 3 , дата в DatePicker будет выделена зеленым цветом. У меня есть идея в 1 состоянии, но в 2 состоянии у меня нет идеи. Я исследую это, но ничего не вижу. Я новичок.

Вот код:

//html
  <input id="datepicker" name="dates" readonly='true' class="datepicker">

//PHP
$db = getDB();
$stmt = $db->prepare("SELECT scheddate FROM appointment GROUP BY scheddate
        HAVING ( COUNT(scheddate) >=5 )  ");  
$count=$stmt->rowCount();
$stmt->execute();

      if($count=5){

        $data= $stmt->fetchAll(PDO::FETCH_COLUMN);

        $db = null;

              if($data>0)
              {
                   $json_array=$data; 
                   $jarray = $json_array;
                  $jsonencode= json_encode(array_values($jarray)); // to convert data from scheddate column into json array
                  echo $jsonencode; // display array of results

              }
      }

//script
<script type='text/javascript'>
        $(document).ready(function() {


            // var unavailableDates = ["18-8-2018", "19-8-2018", "20-8-2018"]; // sample dates in day month year format


            var unavailableDates = <?php echo $jsonencode; ?>; // array from the condition above


            console.log(unavailableDates);

            function unavailable(date) {


                // ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();

                                        // +1  because array starts at index 0 
                                        //  without + 1 january will start on index 0 instead of index 1
                dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();

                // to check if dmy exists in the variable array
                // inArray default result will be -1 meaning true. to reverse != -1
                if ($.inArray(dmy, unavailableDates) == -1) 
                {
                    return [true, ""];

                    // if true dates that exist in the array will be disabled
                } 
                else {
                    return [true, "different-background", "Unavailable"];
                }
            }

            $(document).ready(function() { // to load jquery after the whole page loads
                $("#datepicker").datepicker({
                    dateFormat: 'd-m-yy', 
                    // date format that would display on the textbox 
                    //mindate = start of date  from current
                    minDate: 0, 
                    // to disable specific date unavailable function is called
                    beforeShowDay: unavailableDates // function unavailable

                });
            });


        });
    </script>

PS: different-background имеет красный цвет, означает, что row count равно или больше, чем пять, a в указателе даты будет выделен красным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...