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

PHP中表单提交时向自身传递ID失败问题求助

你的问题出在表单提交的逻辑冲突上——你给提交按钮加了onclick跳转,这会优先于表单的POST提交,导致实际发起的是GET请求,而你的PHP代码却在判断$_POST['submit'],自然不会执行输出部分。

具体问题拆解:

  1. 点击按钮时,onclick里的location.href会让浏览器直接跳转到带GET参数的URL,表单的POST提交被完全中断了,所以PHP里的$_POST['submit']永远不会等于'winners'。
  2. 你试图通过URL跳转传参,但这不是表单提交的正确方式,既不符合规范也容易引发逻辑混乱。

解决方案一:用表单隐藏字段传递数据(推荐,符合标准规范)

修正后的代码会让表单正常POST提交,同时通过隐藏字段传递所需参数:

<?php 
// 现在判断POST的submit,从POST中获取参数
if ($_POST['submit'] == 'winners') {
    $a = $_POST['A'];
    echo $a;
    $point = $_POST['POIN'];
    echo $point;
} 
?>
<form method="post" style="width:auto;">
    <div class="box">
        <span class='odometer' id="timespan" name="timespan">232</span>
        <!-- 添加隐藏字段来传递固定值A和动态值POIN -->
        <input type="hidden" name="A" value="1">
        <input type="hidden" name="POIN" id="poin-input">
    </div>
    <input class="process" name="submit" type="submit" id="submit" value="winners">
</form>

<script>
// 提交表单前,把timespan的内容同步到隐藏字段
document.getElementById('submit').addEventListener('click', function() {
    document.getElementById('poin-input').value = document.getElementById('timespan').innerHTML;
});
</script>

说明:

  • 移除了onclick跳转,让表单按默认逻辑POST提交
  • 用隐藏字段A传递固定值1,用JS动态把timespan的内容同步到隐藏字段POIN
  • PHP从$_POST中读取参数,点击提交后就能正确输出1232了

解决方案二:保留跳转逻辑(不推荐,但按需使用)

如果你一定要用location.href跳转的方式,需要调整按钮类型和PHP判断逻辑:

<?php 
// 改成判断GET参数是否存在,因为跳转是GET请求
if (isset($_GET['A']) && isset($_GET['POIN'])) {
    $a = $_GET['A'];
    echo $a;
    $point = $_GET['POIN'];
    echo $point;
} 
?>
<form style="width:auto;">
    <div class="box">
        <span class='odometer' id="timespan" name="timespan">232</span>
    </div>
    <!-- 把按钮类型改成button,避免触发表单默认提交 -->
    <input class="process" type="button" id="submit" value="winners" onclick="location.href='reward-pollingx.php?A=1&POIN='+document.getElementById('timespan').innerHTML">
</form>

说明:

  • 按钮类型改为button,防止表单默认的GET/POST提交干扰跳转逻辑
  • PHP判断GET参数是否存在,跳转后就能输出对应的值

总结

优先选择方案一,因为表单提交应该遵循HTTP标准方法,用隐藏字段传递数据更安全、规范,也能避免跳转和表单提交的冲突。

内容的提问来源于stack exchange,提问作者Beny Bond Banjarnahor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:51:58