我有以下方法执行Ajax请求,传递从select输入获得的一些动态值。
它运行正常,但动态值作为参数传递到网址中,类似于 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
)
)
);
我正在尝试以更友好的网址方式执行此操作,例如 states/listCities/2
。
CakePHP中可以使用输入中的动态值生成这样的友好URL,或者只能将动态值作为参数传递吗?
答案 0 :(得分:1)
据我所知,这是不可能的。您可以在URL数组中传递ID作为第三个参数,但由于在模板生成时不知道ID,因此在这种情况下不适用。如果您想使用JsHelper
,则必须坚持使用它提供的JavaScript代码生成。
作为替代方案,您可以编写自己的助手:从JsHelper
导出并覆盖request()
方法以满足您的需求。您可以获取原始源代码的源代码以获得良好的开端,并且仅修改在代码生成中使用data
参数的方式。