получить значения формы в массив в php - PullRequest
2 голосов
/ 17 декабря 2009

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

 <?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?

Ответы [ 3 ]

11 голосов
/ 17 декабря 2009

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

<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']);
?>
11 голосов
/ 17 декабря 2009

Уже сделано.

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

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

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

$values = array_values($_POST);

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

5 голосов
/ 17 декабря 2009

Это фактически способ, которым 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, который содержит комбинацию всех трех.

Для получения дополнительной информации см. Страницу документа по Superglobals .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...