2012-06-15 2 views
1

Я использую библиотеку UI chosen, чтобы выбрать несколько значений для параметра post с именем «tables». В консоли сети Chrome можно проверить, что это работает, как я ожидал:Как передать несколько значений в одном параметре post в CodeIgniter?

Form data 
checkin:2012-06-15 16:00:00 
checkout:2012-06-15 17:00:00 
tables:14 
tables:15 
tables:16 
customer:28 

Но когда я пытаюсь восстановить эту информацию таблицы в контроллере

var_dump($this->input->post('tables')); 

Я получил только последнее значение для Пар :

string(2) "16" 

Я также стараюсь var_dump($_POST['tables']); когда такой же результат.

ответ

5

Попробуйте называть его tables[] вместо tables.

+0

Спасибо, мне интересно, где вы его нашли, потому что я смотрел в официальных документах, и там ничего не нашел. – sanrodari

+0

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

+0

, потому что «таблицы» имеют несколько значений, мы можем предположить его массив. использование таблиц [] позволяет получить доступ к следующему индексу массива (где хранятся данные, которые вы хотите сохранить), вместо самого массива (объекта). – alecwhardy

0

У меня нет опыта работы с CodeIgniter, но основное решение, которое вы ищете, это либо сделать массив, либо передать его (если CodeIgniter имеет функцию для передачи массива в POST, что было бы лучше, иначе создайте функцию, которая добавляет значения и ограничивает их запятой или точкой с запятой, а другая функция интерпретирует это на другом конце) или передать, например «tables1: 14», «tables2: 15», «tables3: 16», а затем обрабатывайте их, как только вы их получите. Я думаю, что массив, вероятно, будет лучшим способом, лично, но у вас может быть причина использовать второй метод.

3

Просто пример того, как передать массив на сервер из HTML формы

HTML

<form> 
    <input name="tables[]" value="value1" /> 
    <input name="tables[]" value="value2" /> 
    .... 
</form> 

PHP (CodeIgniter)

$tables_array=$this->input->post('tables'); // an array with all values of tables[] input/item of form 

если вы print_r($tables_array); то выход будет

Array ([0] => value1 [1] => value2) 
Смежные вопросы