Jquery CakePHP Ajax调用以获取下拉列表

Jquery CakePHP Ajax调用以获取下拉列表,jquery,cakephp,getjson,cakephp-2.1,cakephp-2.2,Jquery,Cakephp,Getjson,Cakephp 2.1,Cakephp 2.2,我正在尝试根据先前选择的下拉列表更改下拉列表。我能够用jQuery编写函数 因为我不能在基于服务器的各种安装中使用URL路径,所以我必须将URL硬放到脚本中 <script type="text/javascript"> function getCategory(){ var industryId = $("#CompanyCompanyIndustryId").val(); $.getJSON('http://localhost/gitgrow/users/fetc

我正在尝试根据先前选择的下拉列表更改下拉列表。我能够用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>

函数getCategory(){
var industryId=$(“#CompanyCompanyIndustryId”).val();
$.getJSON('http://localhost/gitgrow/users/fetch/“+行业ID,功能(数据){
var选项=“”;
$.each(数据、函数(键、值){
选项+=''+值+'';
});
$(“#CompanyCompanyCategoryId”).html(选项);
})
}

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

您可以在页面中编写javascript,并使用
$this->Html->url
构建url值。只需在
$this->Html->scriptBlock()中编写它
并添加
'inline'=>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));
$this->Html->scriptBlock(“
函数getCategory(){
var industryId=$(\“\”公司industryId\”).val();
$.getJSON(“$this->Html->url(数组('controller'=>'users','action'=>'fetch',$industryId))”,函数(数据){
var选项=“”;
$.each(数据、函数(键、值){
选项+=''+值+'';
});
$(\“\”CompanyCompanyCategoryId\”).html(选项);
})
}
,数组('inline'=>false));

现在,您有了在
中生成的javascript(或您希望的任何其他地方),并且正在使用CakePHP来构建URL。

我已经更改了我的答案,以修复我可以看到的报价问题,但是-报价问题可能是您在进入实际编辑器时可以自行修复的问题(我在StackOverflows RTE中编写了这篇文章)。概念是一样的,我相信这就是你要问的。明白了。。我明白了。非常感谢:)我不能只使用html url而不使用scriptBlock吗。使用它的好处是什么?您可以只使用Html帮助程序-scriptBlock的好处是您可以告诉CakePHP将javascript放在页面的任何位置-页眉或页面底部…等等。如果您已经在想写的地方写了,可以忽略scriptBlock部分