Php阵列值很难

时间:2009-07-07 14:52:34

标签: php arrays variables post checkbox

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

<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>");

?>

它只是输出:

阵 ( )

谢谢。

2 个答案:

答案 0 :(得分:7)

您需要在所有输入上设置名称属性才能使表单发布。提交表单时不会发布 ID

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

为提交按钮执行相同操作。它允许您确定按下哪个提交按钮,以防您有多个相同的表单。

答案 1 :(得分: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>