【问题标题】:get form not passing value php获取表单不传递值php
【发布时间】:2015-08-28 12:29:25
【问题描述】:

我一直在搜索并试图找出我的代码有什么问题,如果我仍然不知道我的代码有什么问题,我不会问这个问题。 本质上,我正在使用一个 php 脚本来呼应一个 get 表单,因为它的操作如下:

<?php
//Add a team list and list members to each team.
$memq = "SELECT members.id, teams.team_name, teams.stage, teams.points, members.member1 FROM members INNER JOIN teams ON teams.team_name=members.team_name";
$memres = mysql_query($memq) or die ('Couldnt display members'.mysql_error());
echo "<br> Teams, Stage & Members: <br>";
while ($memrow = mysql_fetch_assoc($memres))
{
	$team_name = $memrow['team_name'];
	echo "<form method='get' action='addOne.php'><input type='hidden' name='team_name' value='$team_name'><input type ='submit' name='team_name' value='+1'></form> ";
	echo "<form method='get' action='addTwo.php?team_name=$team_name' value='<?php echo $team_name;?>'><button type ='submit'>+2</button></form> ";
	echo "<form method='get' action='addTen.php?team_name=$team_name' value='<?php echo $team_name;?>'><button type ='submit'>+10</button></form> ";
	echo $memrow['id'] . " | " . $memrow['team_name'] . " | " . $memrow['stage'] . " | " . $memrow['member1'] . " | " . $memrow['points'] . "<br>";
	
}
?>

我一直在玩它并尝试了很多东西(在表单声明中使用value = 字段等),但基本上当我在浏览器中检查检查器时,它会说:

<form method="get" action="addOne.php?team_name=asda">
  <input type="hidden" value="asda">
  <input type="submit" value="+1"></form>

所以你可以看到该值实际上是设置的,但是表单提交肯定不起作用,因为 addOne.php 中的if 语句(if (isset($_GET['team_name'])))总是返回 false。

我在这里遗漏了一些非常简单的东西吗?帮助表示赞赏,在此先感谢。 :)

【问题讨论】:

    标签: php forms get


    【解决方案1】:

    问题是您在表单的 action 属性中使用了 GET 变量。如果您设置 method='get' 和一个带有 get 变量的操作,它们将被删除并被表单中的变量覆盖。它应该遵循 HTML:

    <form method="get" action="addOne.php">
        <input type="hidden" name="team_name" value="asda">
        <input type="submit" value="+1">
    </form>
    

    PHP 应该是这样的:

    $team_name = $memrow['team_name'];
    echo "<form method='get' action='addOne.php'><input type='hidden' name='team_name' value='$team_name'><input type ='submit' value='+1'></form> ";

    【讨论】:

    • 好吧,我让它和这个一样,现在它抛出一个addOne.php?team_name=asda:1 GET http://testphp-olivlaytchev.rhcloud.com/addOne.php?team_name=asda 500 (Internal Server Error)
    • 你能给出你使用的PHP代码,而不仅仅是生成表单的sn-p
    • woops 编辑了您的帖子而不是我的帖子,现在也更改了 OP -> 您可以忽略其他两种形式,因为我正在尝试运行第一个表单以便继续下一个表单。 :D
    • 单击其中一个按钮时是否出现错误?因为在这种情况下,错误必须在 addOne.php 文件中。
    • 是的,只有当我点击时才会出现错误,但 addOne.php 的第一行是 &lt;?php if (isset($_GET['team_name'])) 所以我看不出有什么问题
    【解决方案2】:

    你需要像这样将属性name放在输入标签中

    <input type="hidden" name="var_1" value="asda" />
    

    然后,cecibe 像这样的值:

    $var_1 = $_REQUEST['var_1']; //REQUEST, GET or POST
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-10
      • 2011-05-24
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      相关资源
      最近更新 更多