cakephp: как получить массив элементов из веб-формы - PullRequest
3 голосов
/ 31 октября 2010

В моей форме CakePHP у меня есть следующий код

<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>
<p> <?php echo $form->input('option[]',array('size'=>13)); ?> </p>

Я пытаюсь получить значения из набора входных текстовых полей, количество текстовых полей может быть установлено пользователем, поэтому не могу дать индивидуальныйимена каждого текстового поля, но как я могу получить значения от моего контроллера для вставки данных в таблицу БД

Спасибо

Ответы [ 3 ]

3 голосов
/ 31 октября 2010

Вы можете оставить форму как есть (и использовать предложения от @Wizzard и @Lee), но лучше всего использовать возрастающую переменную для построения списка. i.e.:

for($i=0;$i<$option_number;$i++){
   echo $form->input("MyModel.{$i}.option");
}

Таким образом, ваша переменная после публикации формы будет выглядеть так:

data [MyModel] [0] [option] = 'значение' data MyModel [опция] = 'значение' data [MyModel] [2] [option] = 'значение' ... и так далее ...

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

print_r ($ this-> данные);

Посмотрите saveAll () (найдите saveAll в вашем браузере и найдите предложенную структуру данных)

1 голос
/ 31 октября 2010

все ваши поля ввода имеют одно и то же имя: option[]. Это хорошо. Это заставляет php автоматически превращать их в массив при загрузке запроса. Таким образом, вы можете получить их в своем контроллере CakePHP следующим образом:

$this->params['form']['option'][0]
$this->params['form']['option'][1]
... and so on ...
0 голосов
/ 31 октября 2010

Уверен, они находятся в массиве $ this-> params ['form'] в контроллере .. или $ this-> data

В методе вашего контроллера выполните var_dump ($ this); и вы увидите, где они появляются

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