簡體   English   中英

將 json 值存儲到數組

[英]Store json values to an array

你好,我沒有太多經驗,但通常在谷歌的幫助下我可以弄清楚,但不是今天。 我正在制定預約計划,並且正在努力阻止來自日期選擇器中的數據庫的值。

JS:

  <script>
  $( function() {
    $( "#datepicker" ).datepicker({
      minDate: 2,
      maxDate: "1w",
      beforeShowDay: function(date)
      {
          var dates = new Array();
          $.ajax({
              url:"load_days.php",
              type:"POST",
              success:function(data)
              {
                for (var i = 0; i < data.length; i++){
                  dates.push(data)
                }
              },
              dataType:"json"
            })
            var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
            return [ dates.indexOf(string) == -1 ]
      }
    });
  } );
  </script>

PHP文件:

$data = array();

$query = "SELECT * FROM events ORDER BY id";

$statement = $connect->prepare($query);

$statement->execute();

$result = $statement->fetchAll();

foreach($result as $row)
{
    $data[] = array(
        'day'     =>  date("d-m-Y", strtotime($row["start_event"]))
    );
}

echo json_encode($data);

首先,我建議修改 PHP 腳本以刪除每個事件日期周圍的['day' => date]數組包裝器。 這將使 JavaScript 更容易在數組中查找日期。

foreach($result as $row) {
    $data[] = date("d-m-Y", strtotime($row["start_event"]));
}

然后我會稍微重新組織一下 JS,以便 load_days.php 中的日期只加載一次,然后重用而不是在每個 beforeShowDay 事件中重新加載。 將PHP返回的數據如上圖重新格式化后,ajax返回的數組就可以直接使用了,就不再需要for循環來轉換了。

$( function() {
    $.ajax({
        url: "load_days.php",
        type: "POST",
        success: function (dates) {
            $( "#datepicker" ).datepicker({
                minDate: 2,
                maxDate: "1w",
                beforeShowDay: function(date)
                {
                    var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
                    return [dates.indexOf(string) === -1]
                }
            })
        },
        dataType: "json"
    });
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM