2009-12-17 3 views
1

Можно ли получить значения полей формы в массиве? EX:Получить значения формы в массиве в php

<?php 

    array('one', 'two', 'three');  
    ?> 

    <form method="post" action="test.php"> 
     <input type="hidden" name="test1" value="one" /> 
     <input type="hidden" name="test2" value="two" /> 
     <input type="hidden" name="test3" value="three" /> 
     <input type="submit" value="Test Me" /> 
    </form> 

Возможно ли передать все значения форм независимо от их числа в массив в php?

ответ

10

Это уже сделано.

Посмотрите на массив $_POST.

Если вы делаете print_r($_POST);, вы должны увидеть, что это массив.

Если вам просто нужно значение и не ключ, используйте

$values = array_values($_POST); 

http://php.net/manual/en/reserved.variables.post.php

+0

Великий, как я мог избавиться от кнопки отправки из массив размещен? И как я могу добавить некоторые элементы в массив? –

+0

Я бы ничего не добавил к этому массиву. Что касается кнопок, просто оставьте поле имени выключенным. –

5

Это на самом деле так, что PHP был разработан для работы, и одна из причин, почему он достиг большого рынка проникновение на раннем этапе с помощью веб-программирования.

Когда вы отправляете форму скрипту PHP, все данные формы помещаются в суперглобальные массивы, которые доступны в любое время. Так, например, отправки формы вы положили в своем вопросе:

<form method="post" action="test.php"> 
    <input type="hidden" name="test1" value="one" /> 
    <input type="hidden" name="test2" value="two" /> 
    <input type="hidden" name="test3" value="three" /> 
    <input type="submit" value="Test Me" /> 
</form> 

будет означать, что внутри test.php, вы бы суперглобальное имя $_POST, который будет укажите, как если бы вы создали его с данными формы, по существу, как следует:

$_POST = array('test1'=>'one','test2'=>'two','test3'=>'three'); 

Есть суперглобалы для запросов POST и GET, т.е. $_POST, $_GET. Существует один для данных cookie, $_COOKIE. Существует также $_REQUEST, который содержит комбинацию из трех.

См. doc page on Superglobals для получения дополнительной информации.

10

Да, просто назвать входы то же самое и место скобки после каждого из них:

<form method="post" action="test.php"> 
     <input type="hidden" name="test[]" value="one" /> 
     <input type="hidden" name="test[]" value="two" /> 
     <input type="hidden" name="test[]" value="three" /> 
     <input type="submit" value="Test Me" /> 
</form> 

Затем вы можете проверить с

<?php 
print_r($_POST['test']); 
?> 
Смежные вопросы