代码之家  ›  专栏  ›  技术社区  ›  Ângelo Rigo

Ajax/cakephp 2。单击一个复选框,并填充两个不同的选择框

  •  0
  • Ângelo Rigo  · 技术社区  · 7 年前

    我试图点击一个复选框并填充两个不同的选择框。

    我必须填写品牌选择框和型号选择框。

    如果给定的汽车与上次访问给定客户的汽车相同,则返回汽车修理厂。

    我的起点是下面的jquery ajax。

    但创建它只是为了填充一个选择框。

    在点击一个复选框之后,我试图找出如何填充两个不同的选择框。

    复选框id:sameCarFromLastVisit 品牌选择框id:brandId 模型选择框id:modelId

    对于后端,我使用的是cakephp 2。

    怎么能做到?

    $(function(){
    
        $(document).on('click', "#sameCarFromLastVisit", function()
        {
            var url = '<?php echo Router::url(array('controller' => 'Cars', 'action' => 'getBrandModel_ajax')); ?>';
            var checked = $(this).is(':checked');
            var data = {
                checked: $(this).val()
            };
    
            $.ajax({
    
                url: url,
                method: 'POST',
                data: data,
                dataType: 'json',
    
                beforeSend: function( xhr ) 
                {
                    if(checked == 1){
    
                        $.blockUI({
                            message: '<h2>Please wait! searching brand and Model</h2>'
                        });
    
                    }
    
                },
                complete: function () 
                {
                    $.unblockUI();
                },
                success: function ($response, a, b) 
                {
                    if(b.status == 200) 
                    {
                        var $optionsBrand = $("#brandId").html($("<option />").val('').text('- selecione -'));
    
                        if($response)
                        {
                            console.log('response '+$response);
                            $optionsBrand.prop("disabled", false);
    
                            $.each($response, function(idbrand, value)
                            {
                                var $opt = new Option(value, idbrand);
    
                                $optionsBrand.append($opt);
                            });
                        }
                        else
                        {
                            $optionsBrand.prop("disabled", true);
                        }
    
                    }
                    else 
                    {
                        alert($response);
                    }
                },
                error: function(x, t, m) 
                {
                    var msg = 'An unexpected error occur. ';
    
                    if( t === "timeout" )
                    {
                        msg += "wait 30 segundos and try again!";
                    }
                    else
                    {
                        msg = t;
                    }
    
                    alert( msg );
                }
            }); //ajax
        }); // document on 'click'
    
    }); // function
    
    0 回复  |  直到 7 年前
    推荐文章