2009-07-07 10 views
0

Ich kann nicht scheinen zu verstehen, warum ich alle Werte mit dem folgenden Code passieren kippe:Php-Array Postwerte dificulties

<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> 

Im Elemento_Descritivos.php Seite der Code Ich habe alle ist:

<?php 

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

?> 

Es gibt einfach:

Array ( )

Danke.

Antwort

7

Sie müssen das Name Attribut auf alle Ihre Eingaben für einen Formulareintrag zu arbeiten. Die ID wird nicht veröffentlicht, wenn ein Formular übermittelt wird.

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

Machen Sie dasselbe für Ihre Absenden-Schaltfläche. Damit können Sie herausfinden, welche Schaltfläche zum Senden gedrückt wurde, falls Sie viele in derselben Form haben.

+0

Wenn die Server zum Browsen ausgibt was ich effektiv bekomme ist name = "Nome" ist es nicht? Als es ganz einfach HTML war, funktionierte es einwandfrei, meinst du, dass meine Submit-Taste ein "Name" Argument benötigt? – Marvin

+0

Ich habe nur diese eine Form, alles was ich auf dieser Seite habe. Deshalb bin ich immer noch verwirrt in diesem Thema, tut mir leid, aber könntest du bitte etwas weiter erklären? Vielen Dank. – Marvin

+0

Sieh dir den HTML-Code an, den du ausgibst - du wirst mit Nome = "Nome" anstelle von name = "Nome" enden. – Greg

2

Wie Wadih sagte - müssen Sie Ihren Eingängen ein Namensattribut zuweisen. Ich habe deinen Code neu geschrieben, in der Hoffnung, dass es klarer wird, was vor sich geht. Ich habe auch das Attribut $ value = \ "$ value \" entfernt.

<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> 
+0

Danke, ich fühle mich ziemlich dumm, da es im ersten Post ziemlich klar war. Ich schätze, dass Sie sich Zeit nehmen, um den Code neu zu schreiben es ist sehr interessant, verschiedene Ansätze zu sehen :) – Marvin

+0

Glücklich zu helfen, lässt mich zögern, tun, was ich tun sollte, während ich das Gefühl habe, ich habe etwas getan :) – Eddy

+0

Eddy, entfernen Sie die Spitze '' Tags, die Ihr Markup umgeben, da Sie HTML-Markup nicht direkt in einen PHP-Codeblock einfügen können. Das von Ihnen gepostete Beispiel funktioniert nicht. –