【问题标题】:CakePHP Ajax Call to get a list for DropdownCakePHP Ajax 调用以获取下拉列表
【发布时间】:2012-07-05 13:36:01
【问题描述】:

我正在尝试根据之前选择的下拉菜单更改下拉菜单。我可以用 jQuery 编写函数。

由于我无法在基于服务器的各种安装中使用 URL 路径,因为我必须将 URL 硬核到脚本中。

<script type="text/javascript">
function getCategory(){
    var industryId = $("#CompanyCompanyIndustryId").val();
    $.getJSON('http://localhost/gitgrow/users/fetch/'+industryId, function(data) {
        var options = '';
        $.each(data, function(key, value) { 
          options += '<option value="' + key + '">' + value + '</option>';
        });
        $("#CompanyCompanyCategoryId").html(options);
    })
}
</script>

如何使用 CakePHP 和 JS 组件实现相同的功能?

【问题讨论】:

    标签: jquery cakephp getjson cakephp-2.1 cakephp-2.2


    【解决方案1】:

    您可以在页面中编写您的 javascript,并使用$this-&gt;Html-&gt;url 来构建您的 URL 值。只需将其写入 $this-&gt;Html-&gt;scriptBlock(); 并添加 'inline'=&gt;false 以使其写入头部而不是文档的该点:

    $this->Html->scriptBlock("
        function getCategory(){
            var industryId = $(\"#CompanyCompanyIndustryId\").val();
            $.getJSON('" . $this->Html->url(array('controller'=>'users', 'action'=>'fetch', $industryId)) . ", function(data) {
                var options = '';
                $.each(data, function(key, value) { 
                  options += '<option value=\"' + key + '\">' + value + '</option>';
                });
                $(\"#CompanyCompanyCategoryId\").html(options);
            })
        }
    ", array('inline'=>false));
    

    现在您有了在 &lt;head&gt;(或您希望的任何其他位置)中生成的 javascript,并且正在使用 CakePHP 构建 URL。

    【讨论】:

    • 我已经改变了我的答案来解决我可以看到的报价问题,但是 - 当你进入一个实际的编辑器时,你可能会自己解决报价问题(我在 StackOverflows RTE 中写了这个)。这个概念是一样的,我相信这就是你要问的。
    • 明白了..我想通了。非常感谢:)
    • 我不能只使用 html url 而不是使用 scriptBlock。使用它有什么好处?
    • 您可以只使用 Html 助手 - scriptBlock 的好处是您可以告诉 CakePHP 将您的 javascript 放在页面上的任何位置 - 在页眉或页面底部...ETC。如果你已经在你想要的地方写了,你可以忽略 scriptBlock 部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2011-09-03
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多