2017-06-08 17 views
0

私は部屋が予約されている日付を取得しようとしていますdatepickerで私はこれをbuildin関数isInvalidDateで動作させました。配列内のすべての項目の|| date.format('YYYY-MM-DD') == '<?php echo $items['1'] ?>'。 これをいくつかのループで行うことはできますか? var_dumpの出力は次のようになります。 `javacriptのロードまたはステートメントの代わりにループを使用

array [7] {[0] => string(10)" 2017-06-09 "[1] => string(10)" 2017-06-10 "[2] =>文字列(10)" 2017-06-11 "[3] =>文字列(10)" 2017-06-12 "[4] => 文字列(10)" 2017-06-14 "[5] =>列(10) "2017年6月15日"[6] =>列(10) "2017年6月16日"}

`だからたびに、スクリプトがされます配列内のアイテムの量を多かれ少なかれ使用することができます。

<script type="text/javascript"> 
$(function() { 

    $('input[name="datefilter"]').daterangepicker({ 
     autoUpdateInput: false, 
     linkedCalendars: false, 
     selectPastInvalidDate: false, 
     isInvalidDate: function(date) { 
     if (date.format('YYYY-MM-DD') == '<?php echo $items['0'] ?>' || date.format('YYYY-MM-DD') == '<?php echo $items['1'] ?>') { 
      return true; 
     } else { 
      return false; 
     } 
    }, 
     locale: { 
      cancelLabel: 'Clear' 
     } 
    }); 



    $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) { 
     $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY')); 
    }); 

    $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) { 
     $(this).val(''); 
    }); 

}); 
</script> 

答えて

1

使用json_encode()はjavascriptの変数に完全な配列を渡した後、javascript配列方法

var inValidDates = <?php echo json_encode($items) ?>; 

$('input[name="datefilter"]').daterangepicker({ 
     .... 
     isInvalidDate: function(date) { 
     return inValidDates.indexOf(date.format('YYYY-MM-DD')) >-1; 
     }, 
     ..... 
}); 
+0

感謝を大量に使用するには!可能であれば答えを受け入れる – marijn

関連する問題