Ajax / cakephp 2. Установите один флажок и заполните два разных поля выбора. - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь установить один флажок и заполнить два разных поля выбора.

Я должен заполнить поле выбора бренда и поле выбора модели.

Если данный автомобиль является тем же автомобилем с момента последнего посещения данного клиента, возвращающегося в автосервис.

Моя отправная точка - jquery ajax ниже.

Но он создан для заполнения только одного поля выбора.

Я пытался выяснить, как заполнить два разных поля выбора, после того, как щелкнул только один флажок.

идентификатор флажка: sameCarFromLastVisit бренд выбрать поле id: brandId Идентификатор окна выбора модели: ID модели

Для бэкэнда я использую 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
...