webentwicklung-frage-antwort-db.com.de

HTML-Eingabearrays

<input name="foo[]" ... >

Ich habe diese schon einmal benutzt, aber ich frage mich, wie es heißt und ob es eine Spezifikation dafür gibt?

Ich konnte es nicht in der HTML 4.01 Spec finden und die Ergebnisse in verschiedenen Google-Ergebnissen nennen es nur ein "Array" zusammen mit vielen PHP Beispielen für die Verarbeitung der Formulardaten.

40
Gerald Kaszuba

In den Kommentaren auf dieser Seite bei PHP.net finden Sie einige Verweise und Hinweise.

Sagt Torsten

"Abschnitt C.8 der Kompatibilitätsrichtlinien der XHTML-Spezifikation gilt für die Verwendung des name-Attributs als Fragmentbezeichner. Wenn Sie die DTD überprüfen, werden Sie feststellen, dass das 'name'-Attribut immer noch als CDATA für Formularelemente definiert ist."

Jetboy sagt

"gemäß diesem: http://www.w3.org/TR/xhtml1/#C_8 Der Typ des Namensattributs wurde in XHTML 1.0 geändert, was bedeutet, dass eckige Klammern im Namensattribut von XHTML nicht gültig sind.

Zum Zeitpunkt des Schreibens nimmt der Validator des W3C dies jedoch nicht in einem XHTML-Dokument auf. "

12

Es ist nur PHP, nicht HTML.

Es analysiert alle HTML-Felder mit [] in ein Array.

So kannst du haben

<input type="checkbox" name="food[]" value="Apple" />
<input type="checkbox" name="food[]" value="pear" />
<input type="checkbox" name="food[]" value="banana" />

nach der Übergabe macht PHP $ _POST ['food'] zu einem Array, und Sie können auf seine Elemente wie folgt zugreifen:

echo $_POST['food'][0]; // would output first checkbox selected

oder um alle ausgewählten Werte anzuzeigen:

foreach( $_POST['food'] as $value ) {
    print $value;
}

Ich glaube nicht, dass es einen bestimmten Namen dafür gibt

53
sqram

Soweit ich weiß, ist in den HTML-Spezifikationen nichts enthalten, da Browser für diese Felder nichts anderes tun sollen. Sie senden sie einfach wie üblich und PHP ist diejenige, die das Parsing in ein Array vornimmt, genau wie andere Sprachen.

22

Folge es...

<form action="index.php" method="POST">
<input type="number" name="array[]" value="1">
<input type="number" name="array[]" value="2">
<input type="number" name="array[]" value="3"> <!--taking array input by input name array[]-->
<input type="number" name="array[]" value="4">
<input type="submit" name="submit">
</form>
<?php
$a=$_POST['array'];
echo "Input :" .$a[3];  // Displaying Selected array Value
foreach ($a as $v) {
    print_r($v); //print all array element.
}
?>
0
Rabby shah