【问题标题】:Php array post values difficultiesphp数组后值困难
【发布时间】:2010-11-08 17:35:13
【问题描述】:

我似乎无法理解为什么我不能使用以下代码传递任何值:

<div class="menu">
Por favor seleccione os conteúdos:
<form name="Categorias" action="Elementos_Descritivos.php" method="post">
<?php 

$Categorias = array ("Nome", "Data", "Cliente", "Observacoes");

 foreach( $Categorias as $key => $value){

echo "<div class=\"cb-row\">
      <label for=\"$value\">$value:</label>
      <input id=\"$value\" $value=\"$value\" type=\"checkbox\" value=\"$value\" checked />
      </div>";
}
 ?>
   <div class="submit">
    <input type="submit" value="Seguinte" />
</div>
    </form>
</div>
 </div>

在 Elemento_Descritivos.php 页面中,我拥有的所有代码是:

<?php

 print("<pre>");
 print_r($_POST);
 print("</pre>");

?>

它只是输出:

数组 ( )

【问题讨论】:

    标签: php arrays variables post checkbox


    【解决方案1】:

    您需要在所有输入中设置 name 属性,表单帖子才能正常工作。 ID 在提交表单时不会发布。

     <input id=\"$value\" name=\"$value\" .../>
    

    对您的提交按钮执行相同的操作。如果您有多个相同的表单,它将允许您确定按下了哪个提交按钮。

    【讨论】:

    • 当服务器输出到浏览器时,我实际上得到的是 name="Nome" 不是吗?当它都是纯 html 时,它可以完美地工作,你的意思是我的提交按钮需要一个“名称”参数吗?
    • 我只有一个表格,它就是我在那个页面上得到的全部。因此,为什么我仍然对这个问题感到困惑,我很抱歉,但你能再解释一下吗?谢谢。
    • 看看你输出的 HTML - 你最终会得到 Nome="Nome" 而不是 name="Nome"
    • 我确实得到了 Nome="Nome" 但为什么当我发布到下一页时,我无法看到任何内容,因为我试图查看 $_POST 中的所有值,这听起来可能很愚蠢,但是我真的在这个问题上碰壁了。谢谢
    • -_- 啊!对不起大家,我明白了...谢谢大家的时间,我应该在程序员的地狱里受苦。
    【解决方案2】:

    正如 Wadih 指出的那样 - 您需要为输入分配名称属性。我已经重写了你的代码,希望它变得更清楚发生了什么。我还删除了属性 $value=\"$value\"。

    <div class="menu">
        Por favor seleccione os conteúdos:
        <form name="Categorias" action="Elementos_Descritivos.php" method="post">
    
        <?php 
        $Categorias = array ("Nome", "Data", "Cliente", "Observacoes");
        foreach( $Categorias as $category){
        ?>
    
        <div class="cb-row">
            <label for="<?=$category;?>">
                <?=$category;?>
            </label>
            <input
                id="<?=$category;?>"
                name="<?=$category;?>"
                type="checkbox"
                value="<?=$category;?>"
                checked
                />
        </div>
    
        <?
        } //foreach
        ?>
    
        <div class="submit">
            <input name="categories" type="submit" value="Seguinte" />
        </div>
        </form>
    </div>
    

    【讨论】:

    • 谢谢你,我觉得很愚蠢,因为在第一篇文章中很清楚。感谢您花时间重写代码,看到不同的方法很有趣:)
    • 乐于助人,让我在做我应该做的事情的同时感觉自己已经完成了一些事情:)
    • Eddy,删除标记周围的顶部 '' 标签,因为您不能直接将 html 标记放在 php 代码块中。您发布的示例不起作用。
    • 哎呀,没注意到里面有多余的标签,为了后代把它们去掉了。
    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多