2013-10-07 53 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,但我如何使用相同的$ employees數組來填充它們?

+0

您需要使用Ajax來保存新項目並檢索要在輸入內使用的新選項列表。 – arilia

+0

好吧,我只會在按下提交按鈕並且選項列表將在每個新創建的字段中相同時纔將新項目與剩餘信息一起保存。 – Domas

+0

所以讓我知道,如果我明白你在問什麼:你想讓用戶從下拉菜單中選擇一家公司,然後員工下拉菜單必須自動填充?像一個國家 - 國家 - 城市場景? – arilia

回答

1

你必須編寫一些JavaScript或jQuery插件來做到這一點。所以在你的view.ctp文件中將this-> User-> getEmployeeList($ this-> Auth-> user('company_id'))轉換爲javascript變量。在單擊事件填充字段中創建新元素時,值爲:

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 = <?= $ employees?> SyntaxError:意外的令牌<[http:// localhost/scheduling/js/addemployees.js:1] 它的正確語法是什麼? – Domas

+0

我編輯我的帖子,現在檢查它 – Heroes84

+0

將其更改爲'var employeeList = '但仍然在第一行得到相同的錯誤,並沒有執行JavaScript。順便說一句,PHP變量$ users是一個關聯數組。 – Domas