私はZendFrameworkの初心者であり、ZendFormを使用してフォームを作成しようとしています。そのフォームでは、国、州、都市のカスケードドロップダウンが必要です。データベースから国のドロップダウンを入力しましたが、国IDを取得して州のドロップダウンを入力する方法がわかりません。
前もって感謝します。
私はZendFrameworkの初心者であり、ZendFormを使用してフォームを作成しようとしています。そのフォームでは、国、州、都市のカスケードドロップダウンが必要です。データベースから国のドロップダウンを入力しましたが、国IDを取得して州のドロップダウンを入力する方法がわかりません。
前もって感謝します。
次のような連想配列を設定する必要があります。
$tCountries = array(
1 => "France",
2 => "USA"
);
$element = new Zend_Form_Element_Select();
$element->addMultiOptions($tCountries);
ここで詳細情報を見つけることができます:http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.select
国を動的に読み込むには、次のように使用する必要があります。
私は以前に標準のphpとjqueryでこれを行いました
そして、ここでは何の関係もありませんZend_Form
。利用可能なすべての状態を受け入れて返すJSON
サービス (たとえば) が必要です。CountryID
この目的のためjQuery
に、セクションでライブラリを接続する必要があります<head>
。
$this->view->headScript()->appendFile('/js/jquery-1.7.3.js'); // In your Controller
次のようなすべてのイベントを処理するjQuery
スクリプトをに追加します。template
$_form->inlineScript()->appendScript(' // my raw JS here');
また
$_form->inlineScript()->appendFile('js/dynamicCountry.js'); // if you want to keep it in separate file
Zend_From
そして、ここで、正しい要素を割り当てること以外は何もしませんID
's、classes
またはnames
.
そして、あなたservice
はsmthを行うことができます。似ている。URLを想定http://localhost/mysite/service/states/country/AT
/**
* In your Service controller disable rendering for your layout and views
*/
public function preDispatch() {
$this->_helper->layout()->disableLayout(); // if you have `layout` enabled
$this->_helper->viewRenderer->setNoRender(true);
}
そして...ようこそ
public function statesAction() {
$request = $this->getRequest();
/**
* Country code transmitted through the parameter
* @var string
*/
$country = $request->getParam('country');
// you are free to do whatever you want and return JSON (for e.g.)
}