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

使用$.post从JS向PHP传变量时返回值为0的问题求助

解决$.post传递变量到PHP返回0的问题

看起来你在FullCalendar的双击事件里尝试用$.post把event的ID传给PHP,但得到了返回值0。我来帮你排查几个常见的问题点:

1. 先确认PHP端是否正确接收并响应请求

首先,你需要在当前页面的PHP代码里专门处理这个POST请求。如果PHP没有针对POST请求做逻辑处理,可能会默认输出0(或者页面其他无关内容)。你可以在页面顶部添加这段处理逻辑:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 检查是否收到idafevent参数
    if (isset($_POST['idafevent'])) {
        $eventId = $_POST['idafevent'];
        // 这里可以写你需要的业务逻辑,比如查询数据库、返回处理结果
        echo "成功收到事件ID:" . $eventId;
        exit; // 处理完POST请求后直接退出,避免输出页面其他内容
    } else {
        echo "缺少idafevent参数";
        exit;
    }
}
?>

2. 完善$.post的回调函数,查看真实返回内容

你的代码只发送了请求,但没有处理返回结果,很难定位问题。建议加上回调和错误处理,在浏览器控制台查看具体返回:

$.post(window.location, {idafevent: event.id}, function(response) {
    console.log("PHP返回内容:", response);
    // 这里可以根据返回结果做后续操作
}).fail(function(xhr, status, error) {
    console.error("请求失败原因:", error);
});

按下F12打开浏览器开发者工具,查看控制台的输出,就能明确是PHP主动返回了0,还是请求本身出错了。

3. 检查是否存在CSRF拦截

如果你的项目用了WordPress、Laravel这类框架,默认会开启CSRF保护,直接发送POST请求会被拦截,导致返回错误或0。这种情况需要在请求里带上CSRF令牌:

比如WordPress的处理方式:

<!-- 先在页面HTML里输出CSRF令牌 -->
<?php wp_nonce_field('event_post_action', 'event_nonce'); ?>
// JS里获取令牌并发送
var nonce = $('#event_nonce').val();
$.post(window.location, {
    idafevent: event.id,
    _wpnonce: nonce
}, function(response) {
    console.log(response);
});

其他框架请按照对应文档添加CSRF验证参数。

4. 确认event.id是否为有效值

有时候可能event.id并不是你预期的数值(比如undefined、空值),建议在发送请求前先打印确认:

console.log("当前事件ID:", event.id);
$.post(window.location, {idafevent: event.id}, function(response) {
    console.log(response);
});

如果event.id为空,PHP端接收不到参数,也可能返回默认值0。

先从这几个方向排查,应该能找到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:15:49