【问题标题】:Passing variable from one page (with form) to another php将变量从一个页面(带表单)传递到另一个 php
【发布时间】:2025-11-21 13:50:01
【问题描述】:

单击提交按钮后,我试图将值从 html 表单上的选择下拉列表传递到另一个页面。该值不需要存储在数据库中,而是临时用于在下一页显示用户对数据库中产品数据的选择。表单的 html 输出与选项值中出现的值按预期工作,我只是无法让它发布该值并从第二页“获取”它,我假设我错过了一个步骤或做错了,谁能指出我正确的方向?:

表格显示在第 1 页:

<?php

echo '<form method="post" action="/page2">';
echo '<select name="selectProduct">';
echo '<option value="" disabled selected>--select--</option>';
foreach ( $getInfo as $product ) {
    echo '<option value="' . esc_html( $product->id ) . '">'.esc_html($product->product).'</option>';
}
echo '</select>';
echo '<div class="btnWrapper">';
    echo '<input class="btn border-width-0 btn-text-skin btn-color-jevc btn-square btn-icon-left adduserBtn" type="submit" name="btnSubmit" value="View specs">';
echo '</div>';
echo '</form>';

第 2 页的输出

<?php
// ...
$selectedProduct = $_POST['selectProduct'];
echo '<div><b>YOU SELECTED:</b>' . esc_html( $selectedProduct ) .'</div>';

在 page2 上执行 var_dump($_POST); 时,我得到一个空的 array(0){}

【问题讨论】:

  • var_dump($_POST) 在第 2 页上为您提供了什么?
  • @delboy1978uk 嗨,在问题中添加代码有点危险。你永远无法确定你是否只是模糊了这个问题
  • 我添加了
  • 是的,但即便如此,开始进入它也是一个坏习惯:)
  • @delboy1978uk 第二页上的 var dump 以 array(0){} 为空返回

标签: php


【解决方案1】:

将方法从 post 更改为 GET 解决了问题。

【讨论】:

  • 从 POST 更改为 GET 并不能真正解决任何问题,如果这是一个将收集大量数据的表单,您真的应该返回 post。 (也建议出于安全目的)我建议的第一件事是做echo ($_POST) ? 'Post' : 'No Post',这将确认是否确实发布了,
  • 我不知道为什么,但我尝试改回 post 并返回“No Post”。但是使用 GET 似乎有效。不确定它是否相关,但使用 Wordpress 并连接到 mySQL 数据库。
  • @CloudTheWolf,此时表单并没有真正收集数据,我要做的就是获取所选选项的 ID,然后在单击提交按钮时重定向到不同的页面并根据选择的 id 显示数据。我在发布时收到此 php 错误:WordPress 数据库错误“字段列表”中的未知列“selectProduct”用于查询 UPDATE myDBtable SET selectProduct= '39' WHERE id= 39 有什么想法吗?
最近更新 更多