2013-10-07 3 views
0

В форме у меня есть простой раскрывающийся список входных данных, который заполняется данными от контроллера. Вот поле ввода:Динамическое создание и заполнение полей формы в CakePHP

echo $this->Form->input('user_id', array('label'=>'Employee')); 

и вот как я заполню его:

$employees = $this->User->getEmployeeList($this->Auth->user('company_id')); 
$this->set('users', $employees); 

Теперь мне нужно, чтобы позволить пользователю создавать этот сотрудник раскрывающегося меню динамически. Я думал, что просто буду использовать jQuery для добавления HTML-кода, необходимого для полей, но как я могу заполнить их тем же $ сотрудниками массив?

+0

Вам нужен Ajax для сохранения нового элемента и получения нового списка опций для использования внутри входа. – arilia

+0

Ну, я сохранил бы новый элемент вместе с оставшейся информацией после нажатия кнопки отправки, и список параметров будет одинаковым во всех вновь созданных областях. – Domas

+0

Итак, дайте мне знать, если я понимаю, о чем вы спрашиваете: вы хотите, чтобы пользователь выбирал компанию из раскрывающегося списка, а затем раскрывающийся список сотрудников должен быть автоматически заполнен? Как сценарий «Страна - государство - город»? – arilia

ответ

1

Вы должны написать javascript или jquery-плагин для этого. Таким образом, в файле view.ctp преобразуйте this-> User-> getEmployeeList ($ this-> Auth-> user ('company_id')) в переменную javascript. Когда вы создаете новый элемент в поле заполнения события click, то значения:

var employeeList= <?=$users?> 
$('#addVar').on('click', function(){ 
varCount++; 
$node = $('<p><label for="var'+varCount+'">Employee '+varCount+': </label><input type="text" name="var'+varCount+'" id="var'+varCount+'"><span class="removeVar">Remove Employee</span></p>').val(employeeList); 
$(this).parent().before($node); 
}); 
+0

Я получаю следующую ошибку при установке: var employeeList = SyntaxError: Неожиданный токен <[http: // localhost/scheduling/js/addemployees.js: 1] Каков правильный синтаксис для него? – Domas

+0

Я редактирую свой пост, проверяю это сейчас – Heroes84

+0

изменил его на 'var employeeList = ', но все равно получал ту же ошибку в первой строке и никакой javascript не был выполнен. PHP-переменная $ users - ассоциативный массив. – Domas

Смежные вопросы