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

页面加载时通过jQuery Ajax POST传值为何返回空数据?

页面加载时Ajax POST传递page_id失效的解决方案

问题说明

页面加载初始化时,尝试通过Ajax POST传递hidden输入框的page_id值到show_comment.php,但页面最终显示"I'm empty",无法获取到输入框的page_id值;但通过按钮触发相同的数据传递逻辑时,却能正常获取到page_id。

相关代码

HTML代码

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<head>

</head>

<body>
    <div id="all-comments"></div>
    <input type="hidden" name="page_id" value="1">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            let page_id = $('input[name="page_id"]').val();
            $.ajax({
                url: 'vender/show_comment.php',
                type: 'POST',
                data: {
                    page_id: page_id
                }
            });
            setTimeout(function() {
                $("#all-comments").load("vender/show_comment.php")
            }, 1000);
        });
    </script>
</body>

show_comment.php代码

<?php

$page_id=$_POST['page_id'];
 if(empty($page_id))
 $str="I'm empty";
 else
 $str=$page_id; 
?>
<div class="new-comment">
    <p><?php echo $str?></p>
    <p><?php echo $str?></p>
</div>

问题原因

代码存在两个关键问题:

  1. 第一个$.ajax请求确实通过POST发送了page_id,但该请求仅发送数据,未将返回内容插入页面,属于冗余操作;
  2. 后续的$("#all-comments").load()方法默认是GET请求,未携带任何page_id参数,导致show_comment.php中$_POST['page_id']不存在,因此输出"I'm empty"。

按钮触发时能正常工作,是因为按钮逻辑直接调用了带参数的请求,而非像页面加载时拆分无用请求和无参数load。

解决方案

方案1:优化load请求,传递POST参数

直接修改setTimeout中的load方法,传递page_id参数,load会自动以POST方式发送数据:

$(document).ready(function() {
    let page_id = $('input[name="page_id"]').val();
    setTimeout(function() {
        $("#all-comments").load("vender/show_comment.php", {page_id: page_id});
    }, 1000);
});

方案2:完善PHP参数判断(可选)

为避免PHP出现未定义索引警告,给$_POST['page_id']增加存在性判断:

<?php
$page_id = isset($_POST['page_id']) ? $_POST['page_id'] : '';
$str = empty($page_id) ? "I'm empty" : $page_id; 
?>
<div class="new-comment">
    <p><?php echo $str?></p>
    <p><?php echo $str?></p>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:32:42