使用CakePHP的Javascript Helper转换jQuery

时间:2014-09-08 14:01:52

标签: php cakephp

我在将以下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,如果将来发生变化,我只需要改变一次。

1 个答案:

答案 0 :(得分:0)

根据评论,我使用原始jQuery而不是CakePHP的方法。