получить значения формы, отличные от имени в codeigniter - PullRequest
1 голос
/ 17 августа 2011

привет, я использую codeigniter.У меня есть форма, там я добавляю скрытые поля динамически.поэтому каждое скрытое поле равно <input type='hidden' name='hidden' value="+$(this).attr('title')+">, поэтому имя равно.

проблема в том, что когда я отправляю форму и пытаюсь получить значения скрытого поля, я могу получить только одно скрытое значение поля, поскольку имена одинаковы

я печатаю значения формы

print_r($this->input->post());

у меня есть 2 скрытых поля, но я получаю только одно

Array
(
    [hidden] => march
    [textbox] => march
    [mysubmit] => Submit
)

я могу динамически изменять имя скрытого поля при создании, но тогда я не знаю точно имя моего скрытого поля,

как я могу получить скрытые значения полей с тем же именем ??Есть ли способ получить значения формы, кроме имени?Я пытался и не могу найти ответ, пожалуйста, помогите .............

1 Ответ

3 голосов
/ 17 августа 2011

Вам нужно будет использовать скобки в атрибутах name:

<input type='hidden' name='hidden[]'>
<!--                            ^^^^                                   -->

Это позволит PHP принимать несколько входов с одинаковыми именами в качестве массива значений, поэтому в этом случае $_POST['hidden'] вернет массив строк.

По умолчанию они индексируются, начиная с 0, поэтому $_POST['hidden'][0] получит первую, $_POST['hidden'][1] - второе и т. Д., Однако - выможете явно проиндексировать их, если вам проще, с помощью чисел или строк.

<input type='hidden' name='hidden[first]'>
<input type='hidden' name='hidden[second]'>

Или:

<input type='hidden' name='hidden[0]'>
<input type='hidden' name='hidden[1]'>

Вы можете вкладывать их настолько глубоко, насколько захотите, например hidden[first][1][],и они будут обрабатываться аналогично массиву PHP, когда вы получите значения $_POST, но вам нужны скобки в HTML.

Без скобок в $_POST будет доступно только значение последнего поля.массив.Это функция PHP, Codeigniter ничего не может с этим поделать.

...