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

据我了解这是不可能的。您可以将 ID 作为 URL 数组中的第三个参数传递,但由于 ID 在模板生成时未知,因此不适用于这种情况。如果您想使用JsHelper,则必须坚持使用它提供的 JavaScript 代码生成。

作为替代方案,您可以编写自己的 Helper:派生它JsHelper并覆盖该request()方法以满足您的需要。您可能可以先获取原始源代码的源代码,然后只修改data参数在代码生成中的使用方式。

于 2012-12-14T17:01:19.750 回答