2012-04-04 13 views
0

Ich habe diesen CodeWie bekomme ich die Werte [] in PHP?

HTML

<ul style="list-style:none;" id="listing"> 
<li> 
<table id="pedido" action="post.php"> 
<form method="POST" > 
<tr> 
<td> 
<select name="product[]"> 
    <option value="0">Perfil:</option> 
    <option value="68mm 5 Cámaras AD rendszer egyenes szárny, ütköző tömítéssel">68mm 5 Cámaras 7001AD, con dos juntas</option> 
    <option value="68mm 7 K AD rendszer íves szárny, ütköző tömítéssel">68mm 7 Cámaras 7001AD con dos juntas</option> 
    <option value="80 mm 6 K Tok + 7 K íves szárny AD rendszer, ütköző tömítéssel">80 mm Marco 6 Cámaras + Hoja de 7 Cámaras 7001AD con dos juntas</option> 
    <option value="68mm 7 K MD rendszer ütköző és középtömítéses, íves szárny">68mm 7 Cámaras 7001MD con tres juntas</option> 
    <option value="80 mm 8 K MD rendszer ütköző és középtömítéses, íves szárny">80 mm 8 Cámaras 7001MD con tres juntas</option> 
</select> 
</td> 
</tr> 
<tr> 
<td> 
<input name="h[]" value="Horizontal" class="comment" /> x 
<input name="v[]" value="Vertical" class="comment" /> 
uds: 
<input name="uds[]" style="width:60px;"/> 
</td> 
</tr> 
<tr> 
<td> 
<select> 
<option>Color</option> 
</select> 

Persiana <input type="checkbox" name="persiana[]" id="persiana"/> <div id="persianaver" style="float:right; display:none">Con motor<input type="radio" name="f[]" value="auto" /> Manual<input type="radio" name="f[]" value="manual" /></div> 
</td> 
<tr></tr> 
<tr> 
<td style="width:435px;"> 
<div id="persiaops" style="float:right; display:none">IMPORTANTE: En caso de haber seleccionado la opción persiana usted tiene que especificar el tamaño de la tapa del cajón (Lugar donde se sitúa la caja de persiana) Puede especificarlo en el campo comentario <a id="pregunta" href="images/demo.jpg"><img alt="pregunta" src="images/ask.jpg" height="15" width="15"/></a> </div> 
</td> 
</tr> 
<tr> 
<td> 
<textarea name="comment[]" rows="5" cols="59" class="comment">Comentario</textarea> 
</td> 
</tr> 
</form> 
</table> 
</li> 
</ul> 

Und jedes Element genannt wird Name [], weil ich die Tabelle oft klonen möchten und dann die Informationen zu füllen. Aber meine Frage ist: Wie kann ich diese Werte in PHP bekommen? Ich meine mit $ _POST ['Hallo'] Ich kann den Inhalt des Hallo-Feldes bekommen, wenn es gesendet wird, aber was ist mit $ _POST ['Hallo []'] ?? Es wird als ein Array-Objekt gespeichert. Aber wie kann ich überprüfen, ob alle Felder mit name = "Hallo" richtig gefüllt sind? Oder ich muss die Werte als ein Array speichern und später in der post.php überprüfen, ob alle Elemente im Array korrekt sind? Gibt es einen einfachen Weg?

Dank;)

Antwort

0

Sie können sie als Arrays erhalten:

echo $_POST['product'][0]; 

Um zu sehen, schreiben Sie Ihre $_POST Arrays Struktur einfach:

print_r($_POST); 
1

Sie werden als Arrays interpretiert werden, wenn PHP Parsen die Anfragedaten. Also:

<input name="v[]" value="Vertical" class="comment" /> 
<input name="v[]" value="Horizontal" class="comment" /> 

Wird in PHP als $_POST['v'] verfügbar sein und wird wie folgt aussehen:

Array 
(
    [0] => Vertical 
    [1] => Horizontal 
) 

Es ist die gleiche grundlegende Syntax als PHP implizite Array Push:

$v[] = 'Vertical'; 
$v[] = 'Horizontal'; 
2

Felder benannt wie Produkt [] kann in PHP mit $ _POST ["Produkt"] [0] (für die erste) zugegriffen werden.

Sie können auch eine Schleife durch dieses Array:

foreach($_POST["product"] as $key => $product) { 
    echo $product; 
} 

Um zu überprüfen, ob alle Felder ausgefüllt sind, sollten Sie eine Laufzeitvariable hinzufügen, die jedes Mal nach oben gezählt Sie Ihre Eingabefelder klonen:

<select name="product[0]">... 
... 
<select name="product[1]">... 
... 

Dann können Sie Schleife wieder über die Produkte:

foreach($_POST["product"] as $key => $product) { 
    //check whether h is also filled: 
    if($_POST["h"][$key] != "") { 
     ... 
    } 
} 
Verwandte Themen