2011-01-14 6 views
27

sah ich etwas auf dieser Seite: Handhabung Reihe von HTML-Formularelementen in JavaScript und PHP http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343HTML Element Array, name = "etwas []" oder name = "etwas"?

Es geht um das Array setzen, die in dem Namen Eigenschaft und wie der die Eingangssammlung Wert. z.B. name="education[]"

Aber wie ich weiß, HTML-Eingabeelement ist Array-Ready von name. Auf Client-Seite (GetElementsByName) oder serverseitige ($_POST in PHP oder Request.Form in ASP.NET) zum Beispiel: name="education", so etwas ist der Unterschied mit oder mit nicht []?

+1

mit Bildung [], können Sie Eingabefelder mit Namen wie Bildung [Thema] [1] und Bildung [Thema] [2] haben wie das entsprechende assoziative Array auf der Serverseite (in PHP $ _POST ['Bildung "]) – naiquevin

Antwort

39

PHP verwendet die eckige Klammer Syntax Formulareingaben in ein Array zu konvertieren, so dass, wenn Sie verwenden name="education[]" Sie ein Array erhalten, wenn Sie das tun:

$educationValues = $_POST['education']; // Returns an array 
print_r($educationValues); // Shows you all the values in the array 

So zum Beispiel:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 

Gibt alle eingegebenen Werte innerhalb des $_POST['education'] Arrays an.

In JavaScript ist es effizienter, das Element von ID zu bekommen ...

document.getElementById("education1"); 

Die ID muss nicht um den Namen entsprechen:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]" id="education1"> 
</p> 
14

Wenn Sie Kontrollkästchen haben, können Sie ein Array von überprüften Werten übergeben.

<input type="checkbox" name="fruits[]" value="orange"/> 
<input type="checkbox" name="fruits[]" value="apple"/> 
<input type="checkbox" name="fruits[]" value="banana"/> 

auch mehr wählen Aufklappmenü

<select name="fruits[]" multiple> 
    <option>apple</option> 
    <option>orange</option> 
    <option>pear</option> 
</select> 
7

Es ist anders. wenn Sie dieses Formular schreiben:

<input type="text" name="education[]" value="1"> 
<input type="text" name="education[]" value="2"> 
<input type="text" name="education[]" value="3"> 

Sie ein Array in PHP, in diesem Beispiel erhalten werden Sie $_POST['education'] = [1, 2, 3] erhalten.

wenn Sie dieses Formular ohne [] schreiben:

<input type="text" name="education" value="1"> 
<input type="text" name="education" value="2"> 
<input type="text" name="education" value="3"> 

Sie den letzten Wert erhalten, hier finden Sie $_POST['education'] = 3 bekommen.