簡體   English   中英

如何在php中修改json_encode函數文件?

[英]How to modify json_encode function file in php?

碼:

<script>
      $(document).ready(function(){
        var events = <?php echo $results; ?>;
        $("#calen").datepicker({
            beforeShowDay: function(date) {
                var result = [true, '', null];
                var matching = $.grep(events, function(event) {
                    return event.Date.valueOf() === date.valueOf();
                });

                if (matching.length) {
                    result = [true, 'highlight', null];
                }
                return result;
            },
            onSelect: function(dateText) {
                var date,
                    selectedDate = new Date(dateText),
                    i = 0,
                    event = null;

                while (i < events.length && !event) {
                    date = events[i].Date;

                    if (selectedDate.valueOf() === date.valueOf()) {
                        event = events[i];
                    }
                    i++;
                }
                if (event) {
                    alert(event.Title);
                }
            }
        });
      });
</script>

<?php
    $sqls = mysqli_query($con,"select pack_program, pack_duration, start_date, end_date from package_detail where pack_name = '".$row['pack_name']."'");
    while($fetch = mysqli_fetch_array($sqls))
    {
        $data[] = array(
                            'Title' => $fetch['pack_program'],
                            'Duration' => $fetch['pack_duration'],
                            'Date' => "new Date(".$fetch['start_date'].")"
                        );
    }
    $results = str_replace('</', '<\/', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
?>

預期產量:

var events = [{Title:"Tour Program : Delhi / Chandigargh Arrival - Shimla ( 02 Nights ) – Manali ( 03 nights ) – Chandigarh ( 01 night ) Delhi / Chandigargh Departure Total : 06 Nights & 07 Days Tour",Duration:"7 days 6 Nights",Date:new Date("08/28/2018")}];

意外的輸出:

var events = [{"Title":"Tour Program : Delhi / Chandigargh Arrival - Shimla ( 02 Nights ) – Manali ( 03 nights ) – Chandigarh ( 01 night ) Delhi / Chandigargh Departure Total : 06 Nights & 07 Days Tour","Duration":"7 days 6 Nights","Date":"new Date(08/28/2018)"}];

在下面的代碼中,我使用jQuery datepicker創建了一個事件日歷,如上所述,該日歷可以很好地實現expected output 但這對於上面提到的unexpected output不起作用。 因此,我該如何在$data[]文件中進行修改,從而為我提供expected output 我怎樣才能做到這一點? 請幫我。

謝謝

您需要的是JSON.parse()

var events = <?php echo $results; ?>;
var obj = JSON.parse(events);

要了解更多-> 在這里

作為您的預期輸出, new Date("08/28/2018")將成為Date對象,但在意外輸出中,它是一個字符串。

讓您嘗試將代碼更改為:

$data[] = array(
                        'Title' => $fetch['pack_program'],
                        'Duration' => $fetch['pack_duration'],
                        'Date' => date('Y-m-d', $fetch['start_date'])
                    );

輸出將是:

var events = [{"Title":"Tour Program : Delhi / Chandigargh Arrival - Shimla ( 02 Nights ) – Manali ( 03 nights ) – Chandigarh ( 01 night ) Delhi / Chandigargh Departure Total : 06 Nights & 07 Days Tour","Duration":"7 days 6 Nights","Date":"2018-08-28"}];

它可以與datepicker

暫無
暫無

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

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