Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 预订日历小部件,防止最后一分钟预订_Javascript_Php_Jquery_Jquery Ui - Fatal编程技术网

Javascript 预订日历小部件,防止最后一分钟预订

Javascript 预订日历小部件,防止最后一分钟预订,javascript,php,jquery,jquery-ui,Javascript,Php,Jquery,Jquery Ui,我想修改我的预订日历小部件,这样可以防止人们在最后一分钟预订。我想这样做,只允许预订至少提前3天。代码如下所示,我猜它与datepicker有关,但我可能错了: class Calendar_widget extends WP_Widget { function Calendar_widget(){ parent::__construct( 'calendar_widget', 'Calendar Widget' ); } function do_wi

我想修改我的预订日历小部件,这样可以防止人们在最后一分钟预订。我想这样做,只允许预订至少提前3天。代码如下所示,我猜它与datepicker有关,但我可能错了:

class Calendar_widget extends WP_Widget {

    function Calendar_widget(){
        parent::__construct( 'calendar_widget', 'Calendar Widget' );
    }

    function do_with_time_stamp_something(&$arrayOfTimeStamps, $timeStamp){
// var_dump($timeStamp);
    if(!empty($timeStamp)){
        $date_link = date( "F.j.Y", $timeStamp );
        array_push($arrayOfTimeStamps, array(
        get_site_url()."/event_category/event/?date=".$date_link,
        date( "m/d/Y", $timeStamp )
    ));
    }

}

    function widget($args, $instance) {
        extract($args);
        $title = apply_filters('widget_title', $instance['title']);

$i=0;
global $wpdb;
$data   =   array();



$wpdb->query("
        SELECT $wpdb->postmeta.`meta_value`
        FROM $wpdb->postmeta

    INNER JOIN $wpdb->posts
    ON $wpdb->postmeta.post_id=$wpdb->posts.ID

    WHERE (`meta_key` = '".SHORTNAME."_event_date'
    OR `meta_key` = '".SHORTNAME."_multiple_weeks_array'
    OR `meta_key` = '".SHORTNAME."_multiple_weeks_array_1') and $wpdb->posts.post_status = 'publish' and $wpdb->posts.post_type = 'event'
");

foreach($wpdb->last_result as $v){

    $meta_value = maybe_unserialize($v->meta_value);

    if(is_array($meta_value)){
        foreach ($meta_value as $timeStamp) {
            // do_with_time_stamp_something($data, $timeStamp);
            if(!empty($timeStamp)){
        $date_link = date( "F.j.Y", $timeStamp );
        array_push($data, array(
        get_site_url()."/event_category/event/?date=".$date_link,
        date( "m/d/Y", $timeStamp )
    ));
    }
        }
    } else {
        // var_dump($meta_value);
        if(!empty($meta_value)){
            // var_dump($meta_value);
            $timeStamp = strtotime($meta_value);
            $date_link = date( "F.j.Y", $timeStamp );
            array_push($data, false);
        }
        // do_with_time_stamp_something($data, $meta_value);
        if(!empty($timeStamp)){

        $date_link = date( "F.j.Y", $timeStamp );
        array_push($data, array(
        get_site_url()."/event_category/event/?date=".$date_link,
        date( "m/d/Y", $timeStamp )
    ));
    }   
    }
}

?>
<?php 
if(isset($_GET['date'])){
    // var_dump($_GET['date']);die;
    $date = $_GET['date'];
    $a = strtotime( $date );
    $final = date( "m/d/Y", $a );
    // echo '---';
    // var_dump($final);die;
} else {
    $final = '';
}
?>
<div class="block_datepicker">
<div id="datepicker" class="calendar">
    <script>
        jQuery(document).ready(function($){
            var events = [
                <?php foreach ($data as $value){ ?>
                    { Title: '<?php echo"$value[0]"; ?>', Date: new Date('<?php echo"$value[1]"; ?>') },
                <?php } ?>
            ];

            $("#datepicker").datepicker({
                defaultDate: new Date ('<?php echo $final; ?>'),
                beforeShowDay: function(date) {
                    var result = [true, '', null];
                    var matching = $.grep(events, function(event) {
                        return event.Date.valueOf() === date.valueOf();
                    });
                    // console.log(matching);
                    if (matching.length) {
                        result = [true, 'highlight', null];
                    }
                    return result;
                },
                onSelect: function(dateText) {
                    var calendar = dateText;
                    $('.about_event[eventdata!="'+calendar+'"]').parents('.events').hide();
                    // $('.about_event[eventdata=="03/28/2014"]').css('display', 'none');
                    // $('.about_event').each(function(){
                    //  if($(this).attr('eventdata') != dateText){
                    //      $(this).parents('.events').hide();
                    //  }
                    //  else{
                    //      $(this).parents('.events').show();
                    //  }
                    // })
                    // console.log(cont);
                    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];
                            //console.log(event);
                        }
                        i++;
                    }
                    if (event) {
                        //LIKE in OLD TIME
                        window.location.href = event.Title;
                    }
                }
            });
        }); 
    </script>
</div>
</div>
<?php
    }

    function update($new_instance, $old_instance) {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);
        // $instance['phone'] = strip_tags($new_instance['phone']);
        // $instance['email'] = strip_tags($new_instance['email']);
        return $instance;
    }

    function form($instance) {
        if(isset($instance['title'])){
            $title = esc_attr($instance['title']);
        }
        // if(isset($instance['phone'])){
     //     $phone = esc_attr($instance['phone']);
        // }
        // if(isset($instance['email'])){
     //     $email = esc_attr($instance['email']);
        // }
        ?>
            <!-- <div class="contact_us"> -->
                <!-- <p> -->
                    <!-- <label for="<?php //echo $this->get_field_id('title'); ?>"><?php //_e('Title:'); ?></label> -->
                    <!-- <input id="<?php //echo $this->get_field_id('title'); ?>" name="<?php //echo $this->get_field_name('title'); ?>" type="text" value="<?php //if(isset($title)) echo $title; ?>" /> -->
                <!-- </p> -->
                <!-- <p> -->
                    <!-- <label for="<?php //echo $this->get_field_id('phone'); ?>"><?php //_e('Phone:'); ?></label> -->
                    <!-- <input id="<?php //echo $this->get_field_id('phone'); ?>" name="<?php //echo $this->get_field_name('phone'); ?>" type="text" value="<?php //if(isset($phone)) echo $phone; ?>" /> -->
                <!-- </p> -->
                <!-- <p> -->
                    <!-- <label for="<?php //echo $this->get_field_id('email'); ?>"><?php //_e('Email:'); ?></label> -->
                    <!-- <input id="<?php //echo $this->get_field_id('email'); ?>" name="<?php //echo $this->get_field_name('email'); ?>" type="text" value="<?php //if(isset($email)) echo $email; ?>" /> -->
                <!-- </p> -->
            <!-- </div> -->
        <?php
    }

}

?>
嗨,我想可能是php文件。代码如下:

<script type="text/javascript">
function show_or_hide(){
    cb = document.getElementById("banner-widget-use");
    if (cb.checked){
        document.getElementById('fake').disabled = true;
    }
    else{
        document.getElementById('fake').disabled = false;
    }
    cd = document.getElementById("second-day-use");
    if (cd.checked){
        document.getElementById('fake_day').disabled = true;
    }
    else{
        document.getElementById('fake_day').disabled = false;
    }

    cd1 = document.getElementById("second-day-use_1");
    if (cd1.checked){
        document.getElementById('fake_day_1').disabled = true;
    }
    else{
        document.getElementById('fake_day_1').disabled = false;
    }

}
ID,短名称。\事件\地点,true; $event\u date=get\u post\u meta$post->ID,SHORTNAME.\u event\u date,true; 如果$event_date!={ $date=$event\u date; } 否则{ $date=; } $time=get\u post\u meta$post->ID,SHORTNAME.\u event\u time,true; $array\u start=get\u post\u meta$post->ID,SHORTNAME.\u event\u date\u array\u start,true; 如果$array_start!={ $start\u date=$array\u start; } 否则{ $start_date=; } $array\u end=get\u post\u meta$post->ID,SHORTNAME.\u event\u date\u array\u end,true; 如果$array_end!={ $end\u date=$array\u end; } 否则{ $end_date=; } $date\u day=get\u post\u meta$post->ID,SHORTNAME.\u event\u multiple\u week\u day,true; $multiple\u from=get\u post\u meta$post->ID,SHORTNAME.\u event\u multitime\u time\u begin,true; $date\u day\u 1=get\u post\u meta$post->ID,SHORTNAME.\u event\u multiple\u week\u day\u 1,true; $multiple\u from\u 1=get\u post\u meta$post->ID,SHORTNAME.\u event\u multitime\u time\u begin\u 1,true; $use\u multidate\u event=get\u post\u meta$post->ID,SHORTNAME.\u use\u multidate\u event,true; $use\u second\u event\u day=get\u post\u meta$post->ID,SHORTNAME.\u use\u second\u event\u day,true; $time\u price=get\u post\u meta$post->ID,SHORTNAME.\u time\u price,true; $time\u price\u child=get\u post\u meta$post->ID,SHORTNAME.\u time\u price\u child,true; $time\u price\u other=get\u post\u meta$post->ID,SHORTNAME.\u time\u price\u other,true; $due\u balance=get\u post\u meta$post->ID,SHORTNAME.\u due\u balance,true; $max\u count=get\u post\u meta$post->ID,SHORTNAME.\u max\u count,true; $reserved=get\u post\u meta$post->ID,SHORTNAME.\u reserved,true; $date\u day\u next=数组; $multiple\u from\u next=数组; $date\u day\u 1\u next=数组; $multiple\u from\u 1\u next=数组; $use\u multidate\u event\u next=数组; $use\u second\u event\u day\u next=数组; $time\u price\u next=数组; $time\u price\u child\u next=数组; $time\u price\u other\u next=数组; $due\u balance\u next=数组; $max\u count\u next=数组; $reserved_next=数组; 对于$i=1$i ID,SHORTNAME.\u事件\u多个\u周\u天\u下一天。$i,对; $multiple\u from\u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u事件\u multitime\u时间\u begin\u next.$i,true; //$multiple\u till\u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u事件\u multitime\u时间\u end\u next.$i,true; $date\u day\u 1u next[$i]=获取帖子\u meta$post->ID,SHORTNAME.\u事件\u多周\u day\u next.$i,true; $multiple\u from\u 1u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u事件\u multitime\u时间\u开始\u 1u next.$i,true; //$multiple\u till\u 1\u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u事件\u multitime\u时间\u end\u next.$i,true; $use\u multidate\u event\u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u使用\u multidate\u event\u next.$i,true; $use_second_event_day_next[$i]=get_post_meta$post->ID,SHORTNAME.\u use_second_event_day_next.$i,true; $time\u price\u next[$i]=get\u post\u meta$post->ID,SHORTNAME.\u time\u price\u next.$i,true; $time\u price\u child\u next[$i]=get\u post\u meta$post->ID,SHORTNAME.\u time\u price\u child\u next.$i,true; $time\u price\u other\u next[$i]=get\u post\u meta$post->ID,SHORTNAME.\u time\u price\u other\u next.$i,true; $due\u balance\u next[$i]=获取\u post\u meta$post->ID,SHORTNAME.\u due\u balance\u next.$i,true; $max\u count\u next[$i]=get\u post\u meta$post->ID,SHORTNAME.\u max\u count\u next.$i,true; $reserved\u next[$i]=get\u post\u meta$post->ID,SHORTNAME.\u reserved\u next.$i,true; } $week_days=数组'Sunday'、'Sunday'、'Sunday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suday'、'suda; ?> jQueryfunction${ $event date.datepicker{dateFormat:'MM-dd,yy'}; $event date array start.datepicker{dateFormat:'MM-dd,yy'}; $event date array end.datepicker{dateFormat:'MM-dd,yy'}; $event-date-array-start_1.datepicker{dateFormat:'MM-dd,yy'}; $event-date-array-end_1.datepicker{dateFormat:'MM-dd,yy'}; 如果$'banner-widget-use'.is':已选中{ $.multidate.show; $'.standart_事件'.hide; }否则{ $.multidate.hide; $‘标准活动’。展览; } $'banner-widget-use'。单击函数{ $.multidate.slideTogglethis.checked; $'.standart_事件'.slideTogglethis.checked; $.add_time.slideTogglethis.checked; $.delete_time.slideTogglethis.checked; }; 如果$‘第二天使用’。是 “:选中”{ $.second_day.show; $。添加时间。显示; $”。删除“时间”。显示; }否则{ $.second_day.hide; $。添加时间。隐藏; $”。删除“时间”。隐藏; } $“第二天使用”。单击功能{ }; }; _事件地点id=事件地点值=样式=宽度:100%;> _事件\日期id=事件日期值=样式=宽度:100%;> _事件\时间id=事件时间值=样式=宽度:100%;> “.uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。; 回响 } 否则{ 回显“”。u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。; 回响 } ?> _事件\日期\数组\开始id=事件日期数组开始值=样式=宽度:100%;/> _事件\日期\数组\结束id=事件日期数组结束值=样式=宽度:100%;/> _事件\多周\日名称=\事件\多周\日> $day_name{ 如果$day\u id==$date\u day{?> 已选择> > _事件\多次\时间\开始值=> _时间\价格值=> _时间\价格\子值=> _时间\价格\其他值=> _到期日余额值=> _最大计数值=> _保留值=> ”“还有,简称。; 回响 } elseif$use\u second\u event\u day==否{ 回显“”。_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。; 回响 } 否则{ 回显“”。_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。; 回响 } ?> _事件\多周\日\名=\事件\多周\日\名> $day_name{ 如果$day\u id==$date\u day\u next1{?> 已选择> > _事件\u多次\u时间\u开始\u 1值=> _时间\价格值=> _时间\价格\子值=> _时间\价格\其他值=> _到期日余额值=> _最大计数值=> _保留值=> 和 id=第二天使用_1值=选中的是=选中的>
使用onSelect at datepicker比较日历值。如果日历不是您想要的结果,请提前3天致电returnHi,谢谢您的回复,但我不太确定您的意思。
    <?php if(!empty($multiple_from_1_next1)){ ?>
    <div class="second_day">
        <label style="display:block"><?php _e('Every', SHORTNAME ); ?><br/ >
            <select id="<?php echo SHORTNAME; ?>_event_multiple_week_day_1_next1" name="<?php echo SHORTNAME; ?>_event_multiple_week_day_1_next1">
                <?php foreach ($week_days as $day_id => $day_name) {
                    if($day_id == $date_day_next1){ ?>
                        <option value="<?php echo $day_id; ?>" selected><?php echo $day_name; ?></option>
                    <?php }
                    else{ ?>
                        <option value="<?php echo $day_id; ?>"><?php echo $day_name; ?></option>
                    <?php }
                } ?>
            </select>
        </label>
        <label style="display:block"><?php _e('From', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_event_multitime_time_begin_1_next1" value="<?php echo $multiple_from_1_next1; ?>" ></label>

    </div>
    <?php } ?>

    <?php $y = 1; ?>
    <?php for($i = 1; $i <= 100; $i++){
        $block = get_post_meta( $post->ID, SHORTNAME.'_event_multitime_time_begin_1_next'.$i);  
        if(isset($block[0]) && !empty($block[0])){
        ?>
        <div class="second_day">
        <label style="display:block"><?php _e('Every', SHORTNAME ); ?><br/ >
            <select id="<?php echo SHORTNAME; ?>_event_multiple_week_day_1_next<?php echo $i; ?>" name="<?php echo SHORTNAME; ?>_event_multiple_week_day_1_next<?php echo $i; ?>">
                <?php foreach ($week_days as $day_id => $day_name) {
                    $ddn = $date_day_1_next[$i];
                    if($day_id == $ddn){ ?>
                        <option value="<?php echo $day_id; ?>" selected><?php echo $day_name; ?></option>
                    <?php }
                    else{ ?>
                        <option value="<?php echo $day_id; ?>"><?php echo $day_name; ?></option>
                    <?php }
                } ?>
            </select>
        </label>
        <?php 
        $mfn = $multiple_from_1_next[$i];
        $use_day = $use_second_event_day_next[$i];
        $price = $time_price_next[$i];
        $price_child = $time_price_child_next[$i];
        $price_other = $time_price_other_next[$i];
        $due_balance = $due_balance_next[$i];
        $max_cap = $max_count_next[$i];
        if(isset($reserved_next[$i]) && !empty($reserved_next[$i])){
            $reserve = $reserved_next[$i];
        }
        else{
            $reserve = 0;   
        }

    ?>
        <label style="display:block"><?php _e('From', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_event_multitime_time_begin_1_next<?php echo $y; ?>" value="<?php echo $mfn; ?>" ></label>
        <label style="display:block"><?php _e('Price Adult', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_time_price_next<?php echo $y; ?>" value="<?php echo $price; ?>" ></label>
        <label style="display:block"><?php _e('Price Child', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_time_price_child_next<?php echo $y; ?>" value="<?php echo $price_child; ?>" ></label>
        <label style="display:block"><?php _e('Price Other', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_time_price_other_next<?php echo $y; ?>" value="<?php echo $price_other; ?>" ></label>
        <label style="display:block"><?php _e('Minimum Deposit (%)', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_due_balance_next<?php echo $y; ?>" value="<?php echo $due_balance; ?>" ></label>
        <label style="display:block"><?php _e('Maximum Capacity', SHORTNAME); ?><br/ ><input type="text" name="<?php echo SHORTNAME; ?>_max_count_next<?php echo $y; ?>" value="<?php echo $max_cap; ?>" ></label>
        <input type="hidden" name="<?php echo SHORTNAME; ?>_reserved_next<?php echo $y; ?>" value="<?php echo $reserve; ?>" >
        <label for="wpcitytour_use_multidate_event" style="margin-right:10px;">And</label>
        <input type="checkbox" num="<?php echo $i; ?>" name="wpcitytour_use_second_event_day_next<?php echo $y; ?>" id="second-day-use_1" value="yes" checked="checked" ><br>
    </div>
    <?php
    $y++;
    }
}?>

</div>
<script type="text/javascript">
    jQuery(document).ready(function($){

        $('.second_day').last().find('input').last().removeAttr('checked');

        $(':checkbox').live('change', function() {

            if($(this).is(":checked")) {

                var id = $('.second_day').length;
                $('.second_day').last().after('<div class="second_day">Every<br /><select id="wpcitytour_event_multiple_week_day_1_next'+id+'" name="wpcitytour_event_multiple_week_day_1_next'+id+'"><option value="0">Sunday</option><option value="1">Monday</option><option value="2">Tuesday</option><option value="3">Wednesday</option><option value="4">Thursday</option><option value="5">Friday</option><option value="6">Saturday</option></select><label style="display:block">From<br/><input type="text" name="wpcitytour_event_multitime_time_begin_1_next'+id+'" value="" ></label><br/><label style="display:block">Price Adult<br/ ><input type="text" name="wpcitytour_time_price_next'+id+'" value="" ></label><br /><label style="display:block">Price Child<br/ ><input type="text" name="wpcitytour_time_price_child_next'+id+'" value="" ></label><br /><label style="display:block">Price Senior / Student<br/ ><input type="text" name="wpcitytour_time_price_other_next'+id+'" value="" ></label><br /><label style="display:block">Maximum Capacity<br/ ><input type="text" name="wpcitytour_max_count_next'+id+'" value="" ></label><br /><input type="hidden" name="wpcitytour_reserved_next'+id+'" value="0" ><label for="wpcitytour_use_multidate_event'+id+'" style="margin-right:10px;">And</label><input type="checkbox" name="wpcitytour_use_second_event_day'+id+'" id="*emphasized text*second-day-use" value="yes"><br><input type="hidden" id="fake" name="wpcitytour_use_multidate_event'+id+'" value="no" disabled="disabled">');
                return false;

           } else{

                var number = $(this).attr('num');
                var post_id = $('#post_ID').val();
                var send_data = {
                    post_id: post_id,
                    number: number,
                    action: "delete_time"
                };

                $.ajax({
                    type: 'POST',
                    url: ajaxurl,
                    dataType: 'json',
                    data: send_data,
                    success:function(result){
                        if(result.error == 0){

                        }
                    }
                });

                if($(this).parents().hasClass('second_day')){
                    $(this).parents('.second_day').next().find('input').val('');
                    $(this).parents('.second_day').next().addClass('trash').removeClass( "second_day" );
                    $('.trash').first().hide();
                }
                else{
                    $('.second_day').last().find('input').val('');
                    $('.second_day').last().addClass('trash').removeClass( "second_day" );
                    $('.trash').first().hide();
                }

                return false;
           }
        });

            return false;
        });

</script>