You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将FullCalendar变量传递给PHP?接收值始终为NULL

问题解决:FullCalendar传递日期参数到PHP为空的问题

问题根源

你当前的代码中,传递参数时只指定了URL参数名Datavisitt,但没有将获取到的日期变量值拼接到参数中,PHP端接收不到实际的参数值,所以返回NULL。URL参数必须遵循key=value的格式才能正确传递数据。

修改方案

修改JavaScript中events的URL拼接逻辑,把获取到的Datavisitt值拼接到URL里,同时用encodeURIComponent处理特殊字符,避免编码问题:

$(document).on('click', '.cons-visitt', function(){
    // 简化冗余的设备判断逻辑,两种场景赋值完全一致
    const initialViews = 'listWeek';
    const Datavisitt = $("#Datavisitt").val();
 
    const calendarEl = document.getElementById('calendarioo');
 
    const calendar = new FullCalendar.Calendar(calendarEl, {
        headerToolbar: {
            left: 'prev,next today',
            center: 'title',
            right: 'listWeek'
        },
        locale: "pt-br",
        buttonText:{
            today:    'Hoje',
            list:     'Lista'
        },
        // 拼接参数值并处理编码
        events: '/visitas1.php?Datavisitt=' + encodeURIComponent(Datavisitt),
    });     
    calendar.render();      
});

PHP端接收示例

因为是通过GET方式传递的参数,PHP端需要用$_GET全局变量接收:

// 先检查参数是否存在,避免未定义索引错误
if(isset($_GET['Datavisitt'])){
    $datavisitt = $_GET['Datavisitt'];
    // 后续用$datavisitt执行事件过滤逻辑
} else {
    // 参数未传递时的兜底处理
}

额外优化建议

  1. 原代码中设备判断的if-else分支赋值完全相同,直接简化为一行代码即可,减少冗余。
  2. 如果后续需要添加更多过滤条件,可改用FullCalendar的events函数回调,通过POST请求传递参数(更适合多参数场景):
events: function(info, successCallback, failureCallback) {
    $.ajax({
        url: '/visitas1.php',
        type: 'POST',
        data: {
            Datavisitt: Datavisitt,
            // 可添加其他过滤参数
        },
        success: function(response) {
            successCallback(response);
        },
        error: function() {
            failureCallback();
        }
    });
}

此时PHP端用$_POST['Datavisitt']接收参数即可。

内容的提问来源于stack exchange,提问作者Bruno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:55:23