0

私はZendFrameworkの初心者であり、ZendFormを使用してフォームを作成しようとしています。そのフォームでは、国、州、都市のカスケードドロップダウンが必要です。データベースから国のドロップダウンを入力しましたが、国IDを取得して州のドロップダウンを入力する方法がわかりません。

前もって感謝します。

4

2 に答える 2

0

次のような連想配列を設定する必要があります。

$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

于 2012-07-29T13:00:33.173 に答える
-2

国を動的に読み込むには、次のように使用する必要があります。

私は以前に標準の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.)
}
于 2012-07-29T13:23:00.020 に答える