---vivi-file-Type-application/javascript---(function ( $ ) { $.fn.remoteSelect = function( options ) { if(this.length == 0) return false; var op = $.extend({ url: false, dependTargets: false, dependParamsName: false, jsSelect: false, tokens:false, valueKey: false, name:false, }, options ); function updateSelect(data){ if(Typeof data != "object") return false $.each(data,function(k,v){ var tokens = op.tokens var value = op.valueKey var name = op.name console.log(value) $.each(v,function (kk,vv) { tokens = tokens.replace("["+kk+"]",vv) value = value.replace("["+kk+"]",vv) name = name.replace("["+kk+"]",vv) }) var selected = $select.data('value') $select.append("") if(k+1 == data.length){ setTimeout(function(){ $select.selectpicker("refresh") $select.selectpicker("val",selected) $loader.addClass("d-none") }, 20); } }) } if(op.jsSelect && $.fn.selectpicker) { var $select = this var title = this.attr("title") var $loader = $("
") if($select.next(".js-select-loader").length == 0) $select.after($loader) console.log(op.dependTargets) if(!op.dependTargets){ console.log(op) $.ajax({ url: op.url, Type: "GET", dataType: "json", success: function (data) { updateSelect(data) } }) }else{ var depend = op.dependTargets.split(",") console.log(depend) var paramsName = op.dependParamsName.split(",") var dataParams = {} $loader.addClass("d-none") $.each(depend,function(k,v){ $(v).on("change",function(){ var vv = $(this).val() if(!vv) return false dataParams[paramsName[k]] = vv $loader.removeClass("d-none") $select.html("") $.ajax({ url: op.url, Type: "GET", data: dataParams, success: function (data) { updateSelect(data) } }) }).change() }) } }else{ console.log("ÇëÌí¼Ójs-select pluginºóÔÙÊÔÊÔ") } } }(jQuery));