Php 将值从一种形式传递到另一种形式-一种奇怪的情况

Php 将值从一种形式传递到另一种形式-一种奇怪的情况,php,forms,post,get,Php,Forms,Post,Get,请查看以下代码: <?php $nomeDominio=''; if (isset($_GET['infoDominio'])) { $nomeDominio = $_GET['nomeDominio']; echo "I'm getting ".$nomeDominio; } if (isset($_POST['atualizarDominio'])) { echo "I'm posting ".$no

请查看以下代码:

<?php

  $nomeDominio='';

  if (isset($_GET['infoDominio']))
  {          
      $nomeDominio = $_GET['nomeDominio'];
      echo "I'm getting ".$nomeDominio;
  }

  if (isset($_POST['atualizarDominio']))
  {
      echo "I'm posting ".$nomeDominio;
  }

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Test Case 99</title>
    </head>

    <body>

        <form name="infoDominio" action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>"  method="get">

            <input id="nome_dominio" type="text" name="nomeDominio" value="<?php echo $nomeDominio; ?>"/>
            <br />
            <button name="infoDominio" type="submit">Obtem informacao</button>

        </form>

        <form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" name="atualizarDominio" method="post">

            <input type="hidden" value="<?php echo $nomeDominio ?>" name="nome-dominio"/>
            <br />
            <button type="submit" name="atualizarDominio">atualizar domínio</button>

        </form>

    </body>

</html>

您缺少此处带有此注释的行

您想将_GET['nomeDominio']从第一个表单传递到第二个表单的隐藏字段,对吗?然后,当我们提交第二个表单时,您再次回显nomeDominio的值(从第二个表单的隐藏字段)。 您可以在$_POST中找到丢失和分配的位置:$nomeDominio=$_POST['nomeDominio']

好了。如果你不明白,我不知道该怎么说

您缺少此处带有此注释的行

您想将_GET['nomeDominio']从第一个表单传递到第二个表单的隐藏字段,对吗?然后,当我们提交第二个表单时,您再次回显nomeDominio的值(从第二个表单的隐藏字段)。 您可以在$_POST中找到丢失和分配的位置:$nomeDominio=$_POST['nomeDominio']


好了。如果你不理解,我不知道如何说不同。

你前后矛盾。顶部表单使用
nome-dominio
作为元素名称,底部表单使用
nome-dominio
。我的直觉是,这就是为什么一个出现而另一个不出现的原因,你使用了错误的名称

编辑

进一步阐述:

if (isset($_POST['nomeDominio']))
{
    echo "I'm posting ".$_POST['nomeDominio'];
}

替换该代码,并假设您选择了
nomeDominio
作为名称,那么应该可以工作

你前后矛盾。顶部表单使用
nome-dominio
作为元素名称,底部表单使用
nome-dominio
。我的直觉是,这就是为什么一个出现而另一个不出现的原因,你使用了错误的名称

编辑

进一步阐述:

if (isset($_POST['nomeDominio']))
{
    echo "I'm posting ".$_POST['nomeDominio'];
}

替换该代码,并假设您选择了
nomeDominio
作为名称,那么应该可以工作

如果我理解正确,您希望能够通过
POST
方法传播
$\u GET
值。可以通过将查询字符串附加到第二个
POST
表单的action属性来完成此操作:

<form action="<?php echo htmlentities($_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] );?>" name="atualizarDominio" method="post">

如果我理解正确,您希望能够通过
POST
方法传播
$\u GET
值。可以通过将查询字符串附加到第二个
POST
表单的action属性来完成此操作:

<form action="<?php echo htmlentities($_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] );?>" name="atualizarDominio" method="post">

您犯了两个错误。第一个错误

if (isset($_POST['atualizarDominio']))
{
  $nomeDominio = $_POST['nomeDominio']; ///Here
  echo "I'm posting ".$nomeDominio;
}
第二个错误

<input type = "hidden" value="<?php echo $nomeDominio; ?>" name="nomeDominio"/><br/>
name="nome-dominio"   //This is another Mistake
name="nomedominio" //use it

您犯了两个错误。第一个错误

if (isset($_POST['atualizarDominio']))
{
  $nomeDominio = $_POST['nomeDominio']; ///Here
  echo "I'm posting ".$nomeDominio;
}
第二个错误

<input type = "hidden" value="<?php echo $nomeDominio; ?>" name="nomeDominio"/><br/>
name="nome-dominio"   //This is another Mistake
name="nomedominio" //use it


谢谢你。然而,我没有跟上。请耐心等待。我把两个名字都写上了。“问题”仍然完全相同。您可以复制/粘贴代码以查看它。请查看我关于问题的附加说明。非常感谢,谢谢你。然而,我没有跟上。请耐心等待。我把两个名字都写上了。“问题”仍然完全相同。您可以复制/粘贴代码以查看它。请查看我关于问题的附加说明。非常感谢。这是表格的名字。你可以自由复制粘贴这段代码,这样你自己就可以看到它了。我的意思是因为它失败了。试试我的方法。@Iznogood-我会试试正确的方法。与此同时,我应该期待什么?这个案子的“解决方案”是什么?我错了。看看我的答案,答案就在那里,你错过了一个作业。@Iznogood-我测试了你之前的建议,得到了同样的结果。我现在要测试你的新电脑。:)这是表格的名字。你可以自由复制粘贴这段代码,这样你自己就可以看到它了。我的意思是因为它失败了。试试我的方法。@Iznogood-我会试试正确的方法。与此同时,我应该期待什么?这个案子的“解决方案”是什么?我错了。看看我的答案,答案就在那里,你错过了一个作业。@Iznogood-我测试了你之前的建议,得到了同样的结果。我现在要测试你的新电脑。:)不,你没有正确地理解我。:)我不想解决任何问题。我想知道为什么它会这样。查看关于该问题的补充说明。:)不,你没有正确地理解我。:)我不想解决任何问题。我想知道为什么它会这样。查看关于该问题的补充说明。:)-1没有任何理由。那太粗鲁了(+1,这个问题没有错。没有什么比沉默的投票人更糟糕的了!@Abe Miessler:谢谢你的正义感。@All:如果有人,出于任何原因,碰巧有这个问题或困惑,似乎这个问题与我们的按钮名和表单名彼此相等这一事实有关,导致浏览器端的不一致。-但这还没有得到证实。-1没有任何理由。那太粗鲁了(+1,这个问题没有错。没有什么比沉默的投票人更糟糕的了!@Abe Miessler:谢谢你的正义感。@All:如果有人,出于任何原因,碰巧有这个问题或困惑,似乎这个问题与我们的按钮名和表单名彼此相等这一事实有关,导致浏览器端的不一致。-但这一点尚未得到证实。