首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将数组php (从xml)转换为javascript以禁用datepicker中的日期(beforeShowDay)

将数组php (从xml)转换为javascript以禁用datepicker中的日期(beforeShowDay)
EN

Stack Overflow用户
提问于 2018-10-06 00:29:35
回答 2查看 81关注 0票数 0

我通过get联系了另一个网站,并得到了一个xml的结果来解释。

我是这样联系的:

   $v= file_get_contents(  
   "https://www.v.com/fechasexcursion.php? 
   agent=M&password=s&fecha1=2018-10-05&fecha2=2018-12- 
   31&idmodelo=$cifraexcursion");

然后,我解析信息以从xml中获取日期,从而在datepicker中禁用这些日期:

     $cifraexcursion = 9;
     $xml = new SimpleXMLElement($v);
     foreach ($xml->excursion as $tour) {   
        if ($nameoftour->idmodelo == $cifraexcursion) {
          echo "<br>Date ".$nameoftour->date;

然后,我需要将这些日期添加到一个javascript var中,以便在datepicker中使用。下面可以很好地工作,但我不能处理数组$nameoftour->date

     <script>
     var array = ["2018-10-14","2018-10-15","2018-10-16"];

     $('input').datepicker({
         beforeShowDay: function(date){
         var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
         return [ array.indexOf(string) == -1 ]
         }
      });
      (function() {
        $.datepicker.setDefaults({
          regional: 'en',
          buttonImage: "/images/calendar_blue.png",
          buttonImageOnly: true,
          firstDay: 1,
        }) 
      })();
     </script> 

更新:打印出4个日期:

    echo "<br>Date ".$nameoftour->date;

但是,如果我这样做,试图保存为javascript数组,它可以工作,但我只能得到四个日期中的最后一个日期。

    var array=["<?php echo ($nameoftour->date);?>",];

更新:我让它工作了:

    $xml = new SimpleXMLElement($viajes);
    $tmpArrayFechas = [];
      foreach ($xml->excursion as $excursion) {
        if ($excursion->idmodelo == $cifraexcursion) {
        $tmpArrayFechas[] = $excursion->fecha;
        }
      }
     $tmpArrayFechas = implode(',', $tmpArrayFechas);
    ?>
    <input type="hidden" id="plazasDisponibles" 
     name="plazasDisponibles" 
     value="<?php echo $tmpArrayFechas; ?>">
    <script>

    var arrayDiasDisponibles = 
      document.querySelector("#plazasDisponibles").value.split(',');
    $('input').datepicker({
      beforeShowDay: function(date){
      var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      return [ arrayDiasDisponibles.indexOf(string) !== -1 ]
      }
    });

    (function() {
       $.datepicker.setDefaults({
         regional: 'en',
         buttonImage: "/images/calendar_blue.png",
         buttonImageOnly: true,
         firstDay: 1,
       })
     })();
    </script>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52669861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档