2011-06-20 9 views
1

私たちのアプリケーションでは、ZF MVCスタックの一部を使用せずにZend_formを使用します。私たちはダイナミックフォーム(Javascript、Ajaxで動く)を作りたいと思っていますが、私たちはDojoを探していますが、それは「すぐに使える」ものではありません。すべてのサンプルがMVCアプリケーションのZend_Formについて語っているので、オンラインZend Frameworkのドキュメントは役に立ちませんでした。ZF MVCを使用せずにZend FormとDojoを使用する場合

私たちのエラーはどこですか?何が足りないの?ここでは、コードは次のとおりです。

$oViewZF = new Zend_View(); 
Zend_Dojo::enableView($oViewZF); 
$oViewZF->addHelperPath(PATH_ZF . '1.11.4/library/Zend/Dojo/View/Helper', 'Zend_Dojo_View_Helper'); 
$oViewZF->dojo()->setCdnVersion('1.1.1'); 
$oViewZF->dojo()->setLocalPath('dojo/dojo/dojo.js')->addStyleSheetModule('dijit.themes.tundra'); 

$form = new Zend_Dojo_Form(); 
$form->setAction($url)->setMethod('post')->setTranslator(self::ZendFormTranslate()); 
$form->addPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/') 
     ->addElementPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/') 
     ->addDisplayGroupPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/'); 
$form->setDecorators(array('FormElements', array('TabContainer', array('id' => 'tabContainer', 'style' => 
'width: 600px; height: 500px;', 'dijitParams' => array('tabPosition' => 'top'))), 'DijitForm')); 

echo $oViewZF->headScript(); #show nothing 
echo $oViewZF->dojo(); #print "style @import dojo/dijit/themes/tundra/tundra.css"; and <script type="text/javascript" src="dojo/dojo/dojo.js"></script> 
echo $oViewZF->layout()->content; #show nothing 
echo $oViewZF->inlineScript(); #show nothing 

$birthday = new Zend_Dojo_Form_Element_DateTextBox('birthday'); 
$birthday->setLabel('Birthday'); 
$form->addElement($birthday); 
$form->addElement('submit', 'cmd', array('label' => 'Créer')); 
echo $form->render($oViewZF); 

それは、任意のJSエラーなしでテキストのみの入力プログラムのフィールドを示しています。

<dt id="birthday-label"><label for="birthday" class="optional">Birthday</label></dt> 
<dd><input id="birthday" name="birthday" value="" type="text"></dd> 
私たちは、チェックボックスがチェックされている場合、フィールドはのみ/ visibleをを必要な日付ピッカーを使用したい

、等々。

よろしく、
セドリック

PS:私はレンダリング()呼び出しの後に$ oViewZF->道場を()(Zend_Dojo_Form in a layoutを参照)配置する場合、私は、これはエラー

ErreurをJSがあります。キャッチされない例外:[例外...コード "文字列に無効な文字が含まれています": "5" nsresult: "0x80530005(NS_ERROR_DOM_INVALID_CHARACTER_ERR)" 場所: "http://127.0.0.1/~cedric/EC/VOOELFE/code/decideur/public/dojo/dojo/_base/_loader/bootstrap.jsライン:1930"]

答えて

2

[OK]を、ここで答えです:

$oViewZF = new Zend_View(); 

Zend_Dojo::enableView($oViewZF); 
$oViewZF->addHelperPath(CHEMIN_ZF . '1.11.4/library/Zend/Dojo/View/Helper', 'Zend_Dojo_View_Helper'); 
$oViewZF->dojo()->setLocalPath('dojo/dojo/dojo.js')->addStyleSheetModule('dijit.themes.tundra'); 

$form->addPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/') 
    ->addElementPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/') 
    ->addDisplayGroupPrefixPath('Zend_Dojo_Form', 'Zend/Dojo/Form/'); 

echo $form->render($oViewZF); 
echo $oViewZF->dojo(); 
echo $oViewZF->inlineScript(); 

道場()の呼び出しは、レンダリング()呼び出しの後でなければならない、と私の分野の一つがひどく宣言とJSエラーが作成されました。

関連する問題