How to convert php array into javascript array to use with the Jquery UI datepicker?

arrays, javascript, jquery, jquery-ui-datepicker, php

Solution

you can use `$.parseJSON` function.

<script type="text/javascript">
var unavailabledates = $.parseJSON('<?php echo json_encode($disablethese); ?>');
</script>
<script src="js/datepicker-admin.js"></script>

Problem

Right now I am using a manually inputted array of dates called disable to disable dates in the jquery UI datepicker with the beforeShowDay method. This is working fine, however, I have a php variable $disablethese which is storing a dynamic array of dates to disable. For some reason, I can't seem to convert my php array into a javascript array (which I'm calling unavailabledates). It doesn't throw any errors but it just doesn't work block out the dates the same way as the static array. ``` <script type="text/javascript"> var unavailabledates = <?php echo json_encode($disablethese); ?>; </script> <script src="js/datepicker-admin.js"></script> ``` Here is datepicker-admin.js ``` $(document).ready(function() { var disable = ["2014-01-03","2014-01-13","2014-01-23"]; $('#fromDate').datepicker({ beforeShowDay: function(date) { if($.inArray($.datepicker.formatDate('yy-mm-dd', date ), disable) > -1) { return [false, "highlighted", "Booked out"]; } else { return [true, "", "available"]; } } }); }); ```

Original source