我在将以下jQuery / AJAX调用转换为CakePHP的JS Helper时遇到问题。
以下是目前的工作原理:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function () {
$("#DatabaseServerId").bind("change", function (event) {
var server_id = $("#DatabaseServerId").val();
$.ajax({
async:true,
dataType:"html",
evalScripts:true,
success:function (data, textStatus) {
$("#DatabaseEnvironmentId").html(data);
},
url:"\/apsportal\/servers\/get_environments/"+server_id
}
);
return false;
});
});
//]]>
</script>
这是我到目前为止所做的:
$data = $this->Js->get('#DatabaseServerId')->serializeForm(array('isForm' => true, 'inline' => true));
$this->Js->get('#DatabaseServerId')->event('change',
$this->Js->request(
array('controller' => 'servers', 'action' => 'get_environments'),
array(
'update' => '#DatabaseEnvironmentId',
'async' => true,
'type' => 'html',
'dataExpression' => true,
'evalScripts' => true,
'data' => $data,
)
)
);
问题是传递的参数是否指定了数组键,并缩小了此操作的用法。
http://my.domain.com/servers/get_environments?data%5BDatabase%5D%5Bserver_id%5D=36
由于server_id
正在其他模型中使用,我宁愿尽可能使用它。
注意:我认为如果我标准化为JS Helper,如果将来发生变化,我只需要改变一次。
答案 0 :(得分:0)
根据评论,我使用原始jQuery而不是CakePHP的方法。