2

選択入力から取得した動的な値を渡すAjaxリクエストを実行する次のメソッドがあります。

正常に動作しますが、動的な値はURLのパラメーターとして渡されます(のように)states/listCities/?big_string_of_serialized_parameter

$this->Js->event(
    'change', 
    $this->Js->request(
        array( #url
            'controller' => 'states', 
            'action' => 'listCities'),
        array( # ajax options that generates the serialized parameter
           'update' => '#DealerCityId', 
           'data' => '$("#DealerStateId").serialize()',
           'dataExpression' => true
        )
    )
);

私はこれをもっとわかりやすいURLの方法でやろうとしていますstates/listCities/2

CakePHPでは、入力から動的な値を使用してこのようなわかりやすいURLを生成することは可能ですか、それとも動的な値をパラメーターとして渡すことのみが可能ですか?

4

1 に答える 1

1

私が理解している限り、それは不可能です。URL配列の3番目のパラメーターとしてIDを渡すこともできますが、IDはテンプレートの生成時に不明であるため、この状況には適用されません。を使用する場合JsHelperは、それが提供するJavaScriptコード生成に固執する必要があります。

別の方法として、独自のヘルパーを作成することもできます。必要に応じて、メソッドから派生しJsHelper、メソッドをオーバーライドしrequest()ます。おそらく、元のソースコードのソースコードを使用して、有利なスタートを切り、dataコード生成でのパラメーターの使用方法のみを変更することができます。

于 2012-12-14T17:01:19.750 に答える