Массив элементов HTML, имя="что-то[]" или имя="что-то"?
Я кое-что видел на этом сайте : Обработка массива элементов HTML-формы в JavaScript и PHP http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343
В нем говорилось о том, чтобы поместить массив в свойство name и как получить значение входной коллекции.
например. name="education[]"
Но, как я знаю, элемент ввода HTML готов к массиву name
.
На стороне клиента (GetElementsByName
) или на стороне сервера ($_POST
в PHP или Request.Form
в ASP.NET)
например: name="education"
, так в чем же разница с или без []
?
3 answers
PHP использует синтаксис квадратных скобок для преобразования входных данных формы в массив, поэтому при использовании name="education[]"
вы получите массив, когда сделаете это:
$educationValues = $_POST['education']; // Returns an array
print_r($educationValues); // Shows you all the values in the array
Так, например:
<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>
Выдаст вам все введенные значения внутри массива $_POST['education']
.
В JavaScript более эффективно получать элемент по идентификатору...
document.getElementById("education1");
Идентификатор не обязательно должен совпадать с именем:
<p><label>Please enter your most recent education<br>
<input type="text" name="education[]" id="education1">
</p>
Если у вас есть флажки, вы можете передать массив проверенных значений.
<input type="checkbox" name="fruits[]" value="orange"/>
<input type="checkbox" name="fruits[]" value="apple"/>
<input type="checkbox" name="fruits[]" value="banana"/>
Также несколько раскрывающихся списков выбора
<select name="fruits[]" multiple>
<option>apple</option>
<option>orange</option>
<option>pear</option>
</select>
Все по-другому. если вы опубликуете эту форму:
<input type="text" name="education[]" value="1">
<input type="text" name="education[]" value="2">
<input type="text" name="education[]" value="3">
Вы получите массив в PHP, в этом примере вы получите $_POST['education'] = [1, 2, 3]
.
Если вы разместите эту форму без []
:
<input type="text" name="education" value="1">
<input type="text" name="education" value="2">
<input type="text" name="education" value="3">
Вы получите последнее значение, здесь вы получите $_POST['education'] = 3
.