Было легко передать данные из контроллера для просмотра. Также для передачи данных из представления в контроллер вам нужны теги формы. Но как вы передаете массив из формы ввода? есть идеи, ребята? вот как выглядит массив:
$test = array
(
array($employee_id[0],$name[0],$days_worked[0],$overtime_hours[0]),
array($employee_id[1],$name[1],$days_worked[1],$overtime_hours[1]),
array($employee_id[2],$name[2],$days_worked[2],$overtime_hours[2])
);
и из моего представления HTML я получил здесь форму ввода:
<input name="test" type="text" class="form-control" id="test" value="<?php echo $test;?>">
и когда я добрался до своей модели, чтобы проверить, получили ли она данные внутри массива:
$this->test = $_POST['test'];
echo $test = $_POST['test'];
все, что я получил, было строкой «Array». Я не могу получить доступ к тому, что находится внутри массива. Мне нужна помощь.
Ваши вопросы неясны. Вы хотите передать массив для просмотра или для вывода HTML в элемент INPUT?
Это две разные вещи, так как одна только передает массив внутри вашего приложения (на сервере), а вторая передает его в ваши данные формы, отображает их в браузере, а затем отправляет форму на сервер и получает данные там.
Во-первых, я не вижу проблем, так как передача переменных не проблема
Второе — по умолчанию невозможно передать многомерный массив во вход формы. Поскольку вход имеет только 1 измерение.
Вы можете передать данные с помощью некоторой функции преобразования, например, в виде строки JSON
value="<?php echo json_encode($test);?>"
и затем загрузите это так:
$this->test = json_decode($_POST['test']);
Но это не имеет смысла во внешнем интерфейсе, я думаю, так как пользователь не будет понимать, какие данные представлены в поле ввода.
Для этого логическим образом я бы разделил данные на группы, а затем отобразил бы соответственно больше полей ввода, например.
<input name="test[0][employee_id]" type="text" class="form-control" id="test" value="<?php echo $test[0][0];?>">
<input name="test[0][employee_name]" type="text" class="form-control" id="test" value="<?php echo $test[0][1];?>">
<input name="test[0][employee_days_worked]" type="text" class="form-control" id="test" value="<?php echo $test[0][2]?>">
<input name="test[0][employee_overtime]" type="text" class="form-control" id="test" value="<?php echo $test[0][3];?>">
но делай это приятнее. Таким образом, вы можете создать sth, который будет отправлен как multi-dim. массив в скрипт php.
как предложено в другом ответе здесь, вы можете увидеть структуру с помощью var_dump ($ test)
Значения массива нельзя передавать непосредственно в данные формы.
Вы должны использовать json_encode.
В вашем представлении файла
$encoded_text = echo json_encode($test);
<input name="test" type="text" class="form-control" id="test" value="<?php echo $encoded_text ;?>">
Теперь в вашей модели просто расшифруйте это
$test = json_decode($test, $assoc = TRUE);
Если вы используете serialize () на вашем контроллере и unserialize () в представлении, вы сможете получить к нему доступ таким же образом. Я полагаю, это то, что вы спрашиваете.