0

以前に選択したドロップダウンに基づいてドロップダウンを変更しようとしています。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 コンポーネントを使用して同じことを達成するにはどうすればよいですか?

4

1 に答える 1

1

ページに 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));

これで、(または他の任意の場所に) 生成された JavaScript が<head>あり、CakePHP を使用して URL を作成しています。

于 2012-07-05T13:42:40.333 に答える