Cómo convertir un array de php en array de javascript para utilizar con Jquery UI datepicker?

Ahora mismo estoy usando un manualmente ingresado matriz de fechas llamado desactivar para deshabilitar las fechas en jquery UI datepicker con el beforeShowDay método. Esto está funcionando bien, sin embargo, tengo una variable php $disablethese que es el almacenamiento de una matriz dinámica de fechas para deshabilitar. Por alguna razón, me parece que no puede convertir el array de php en un array de javascript (que voy a llamar a unavailabledates). No tirar errores, pero simplemente no funciona bloquear las fechas de la misma manera como la estática de la matriz.

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

Aquí es 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"];
                }
            }
        });
    });
  • !! Libre para preguntarme si cualquier problema
InformationsquelleAutor chap | 2014-02-10

7 Kommentare

  1. 3

    puede utilizar $.parseJSON función.

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

    Puede utilizar .push para insertar todos los valores a un array.

     <script type="text/javascript">
        var unavailabledates = new Array();
      <?php 
        $disbaleddates = json_encode($disablethese);
        for($i=0;$i<count($disbaleddates);$i++) { ?>;
          unavailabledates.push('<?=$disbaleddates[$i]?>');
      <?php } ?>
        </script>
     <script src="js/datepicker-admin.js"></script> 

    Que esto puede resolver su problema, Pero podría tener un largo camino!! 🙂

  3. 0

    Puede utilizar directamente JSON.parse()

    var unavailabledates = JSON.parse(<?php echo json_encode($disablethese); ?>);
  4. 0

    1) Crear un campo oculto en la página php:

    <input id="disable-dates" type="hidden" value="<?php echo json_encode($disablethese); ?>">

    2)
    El uso de jquery :

    <script type="text/javascript">
        var unavailabledates = $.parseJSON($('#disable-dates').val());
    </script>

    Tanto simulatneously

  5. 0

    Hizo de asignar su unavailabledates en

    var deshabilitar = [«2014-01-03″,»2014-01-13″,»2014-01-23»];

    como

    var deshabilitar = unavailabledates;

  6. 0

    Estoy usando laravel y esto funciona muy bien:

    var something = JSON.parse('{!! json_encode(['foo' => 'bar']) !!}');

    Yo estaba muy confundido un poco porque yo no podía entender por qué esto NO funciona:

    var something = JSON.parse('{{ json_encode(['foo' => 'bar']) }}');

    la segunda manera escapa a entidades HTML en el documento. pero sí, que sólo con laravel.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea