忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/12/11 22:30 |
ZF1.11 ZendX_JQuery
PHPをJQueryと連携できるようになります。
例によって日本語情報が全然ありませんので手探りで使ってみます。

jQuery自体についてはVer1.4.0以降更新が滞っていますがこちらのサイトが非常にわかりやすいです。
しかしZendX_JQueryが対応しているのは1.5.2以降のようです。残念。

さて、とりあえずインストール…ってところでいきなり躓いた。

なにしろリポジトリに置いてなければPearチャンネルにもない。

どういうことだと探し回ってみればこんなエントリを発見。

パッケージをダウンロードするとextras/libraryディレクトリ内にあるそうな。なんでだよ。

さて、extras/library/ZendX/JQueryは無事に見つかりました。
ついでにZendX/ConsoleとかZendX_Db_Adapter_Firebirdとか見つかりました。
そもそもZendXってなんだ?

http://framework.zend.com/manual/ja/coding-standard.naming-conventions.html
> Zend Framework 追加ライブラリの最上位レベルのディレクトリは "ZendX/" ディレクトリです。

うむ、意味がわからん。

ちなみにリポジトリでは違うディレクトリに置いてありました。

とりあえずPear/Zendディレクトリと並列にZendXディレクトリを配置。
これだけで最低限動作するはずです。
<?php
	
	//インクルード
		require_once('Zend/Form.php');
		require_once('ZendX/JQuery/Form.php');
		require_once('ZendX/JQuery/Form/Element/Slider.php');
		require_once('ZendX/JQuery/Form/Element/DatePicker.php');
	
	//Zend_Form
		$form = new ZendX_JQuery_Form();
		
		//スライダー
			$slider = new ZendX_JQuery_Form_Element_Slider('slider1', array('label' => 'Slider:'));
			$slider->setJQueryParams(array('defaultValue' => '75'));
			$form->addElement($slider);
		
		//日付選択
			$datepicker = new ZendX_JQuery_Form_Element_DatePicker('dp1', array('jQueryParams' => array('defaultDate' => '2007/10/10')));
			$form->addElement($datepicker);

	//出力
		print($form->__toString());

> Warning: Exception caught by form: UiWidgetElement decorator cannot render without a registered view object

お?

実はZendX_JQueryはZend_Viewが必須となっており、ZendX_JQuery単体あるいはZend_Formとだけ組み合わせるということができません。
というかZend_FormがZend_Viewを必要としています。
なんて迷惑な。

後半の出力部分を変更。
	//出力
		require_once('Zend/View.php');
		$view = new Zend_View();
		$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
		print($form->render($view));
<form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">
<dt id="slider1-label"><label for="slider1" class="optional">Slider:</label></dt>
<dd>
<div options="" id="slider1-slider"></div></dd>
<dt id="dp1-label"> </dt>
<dd>
<input type="text" name="dp1" id="dp1" value=""></dd></dl></form>
あれ?
jQueryParamsどこいった?

必要な要素が出力されないため、これでは使う意味がありません。
どうも使い方がわかりません。
誰か教えてください。
PR


2011/09/26 22:56 | Comments(0) | TrackBack(0) | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<Mantis1.2.5 メールを使わないでMantisを利用する | HOME | 買ったものリスト 2011/09/25>>
忍者ブログ[PR]