2010-02-10 72 views
0

我想根據存儲在XML文件中的字段及其定義動態地創建表單。在我的XML中,我已經定義了1個複選框,其中包含一些標籤和一個帶有某個標籤的文本框。在cakephp中構建動態表單

如何根據我在xml中的內容動態生成表單。

我不想創建任何模型。

+0

您不需要模型來創建表單。到目前爲止你嘗試了什麼,以及那些阻礙你的問題是什麼? – deceze

回答

1

不確定你要去哪裏或爲什麼需要。我已經從數據庫定義中構建了動態表單(這樣添加/刪除字段就會有前端,但是不明白爲什麼會從xml文件中做到這一點。)無無,基本思想如下:

在控制器功能

// Import cake's xml class 
App::import('Xml'); 
// your XML file's location 
$f = "/path/to/form.xml"; //no need to fopen('file.xml','r'), cake does it 
// parse the xml 
$xml_array =& new XML($f); 
$this->set('form_info', Set::reverse($xml_array)); 

在視圖:

//Assuming you know how the xml is gonna be setup declare the magic form elements 
e($form->create('Model', array('action'=>'action_name'))); 
foreach($form_info[fields] as $field){ 
    e($form->input($field['name'], array('class'=>field['class'], 
    'label'=>field['label'], 'type'=>$field['type']) 
} 
//and close the form: 
e($form->end('submit')); 

那的基本理念,在實踐中我想包在這些陣列選項空()檢查,並根據您的XML結構和字段使用你需要對條件進行調整(也許實現一個開關ch case來處理特定的格式)。這顯然假定你的表或模型設置爲處理任何設置的字段。