Subversion-Projekte lars-tiefland.cienc

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
9 lars 1
/*
2
 * Remote Chained - jQuery AJAX(J) chained selects plugin
3
 *
4
 * Copyright (c) 2010-2013 Mika Tuupola
5
 *
6
 * Licensed under the MIT license:
7
 *   http://www.opensource.org/licenses/mit-license.php
8
 *
9
 * Project home:
10
 *   http://www.appelsiini.net/projects/lazyload
11
 *
12
 * Version:  0.9.3
13
 *
14
 */
15
        $(".buttonx").button().click(function()
16
        {
17
            Kategorie_fill();
18
        });
19
        function Kategorie_fill()
20
        {
21
            var divEbayCat = document.getElementById("EbayCat")
22
            var divEbayCatName = document.getElementById("EbayCatName");
23
            var typ=$('#typ').val();
24
            if(typ=="d")
25
            {
26
                $('#cat_name').html(divEbayCatName.innerHTML);
27
                $('#cat_id').val(divEbayCat.innerHTML);
28
                $('#newCategoryForm').formwizard("next");
29
            }
30
            else
31
            {
32
                /* Kategorie in Hauptformular schreiben */
33
                c_id=$('#cat_selected').val();
34
                document.forms["vportale_artikel_form"].elements["kategorie_"+c_id].value = divEbayCat.innerHTML;
35
                $('#delcat_'+c_id).show();
36
                document.getElementById("kategorie"+c_id).innerHTML = divEbayCatName.innerHTML;
37
                $( "#link_cat_dlg" ).dialog("close");
38
            }
39
        }
40
        /*
41
         * Erste Ebene laden
42
         *
43
        */
44
        function ErsteEbene()
45
        {
46
            var self   = "#ebene1";
47
            var data = {};
48
            vPId=$('#vportale_sel').val();
49
            data["category"] = "NULL";
50
            data["vPId"] = vPId;
51
            $.getJSON("/vportale/json.php", data, function(json) {
52
            /* If select already had something selected, preserve it. */
53
            var selected_key = $(':selected', self).val();
54
 
55
            /* Clear the select. */
56
            $("option", self).remove();
57
 
58
            var option_list = [];
59
            if ($.isArray(json)) {
60
                /* JSON is already an array (which preserves the ordering of options) */
61
                /* [["","--"],["series-1","1 series"],["series-3","3 series"]] */
62
                option_list = json;
63
            }
64
            else
65
            {
66
                /* JSON is an JavaScript object. Rebuild it as an array. */
67
                /* {"":"--","series-1":"1 series","series-3":"3 series"} */
68
                for (var key in json) {
69
                    if (json.hasOwnProperty(key)) {
70
                        option_list.push([key, json[key]]);
71
                    }
72
                }
73
            }
74
 
75
 
76
            /* Add new options from json. */
77
            for (var i=0; i!==option_list.length; i++)
78
            {
79
                var key = option_list[i][0];
80
                var value = option_list[i][1];
81
 
82
                /* Set the selected option from JSON. */
83
                if ("selected" === key)
84
                {
85
                    selected_key = value;
86
                    continue;
87
                }
88
                var option = $("<option />").val(key).append(value);
89
                $(self).append(option);
90
            }
91
 
92
            /* Loop option again to set selected. IE needed this... */
93
            $(self).children().each(function()
94
            {
95
                if ($(this).val() === selected_key) {
96
                    $(this).attr("selected", "selected");
97
                }
98
            });
99
 
100
            /* Force updating the children. */
101
            //$(self).trigger("change");
102
 
103
 
104
            });
105
        }
106
        ErsteEbene();
107
 
108
(function($) {
109
    //"use strict";
110
    $.fn.remoteChained = function(parent_selector, url, options) {
111
        //parent_selector="#category";
112
 
113
        return this.each(function() {
114
 
115
            /* Save this to self because this changes when scope changes. */
116
            var self   = this;
117
            var backup = $(self).clone();
118
 
119
            /* Handles maximum two parents now. */
120
            $(parent_selector).each(function() {
121
                $(this).bind("change", function() {
122
 
123
                    /* Build data array from parents values. */
124
                    var data = {};
125
                    $(parent_selector).each(function() {
126
                        var id = $(this).attr("id");
127
                        var value = $(":selected", this).val();
128
                        var name = $(":selected", this).text();
129
                        vPId=$('#vportale_sel').val();
130
                        data["vPId"] = vPId;
131
                        if(name)
132
                        {
133
                            ebene=id.substr(5,1);
134
                            if(ebene >= 2)
135
                            {
136
                                $.get("/vportale/only_end_cats.php?vPId="+vPId,function(only_end_cats){
137
                                    //console.log(only_end_cats);
138
                                    if(only_end_cats==0)
139
                                    {
140
                                        $(".buttonx").show();
141
                                    }
142
                                    else
143
                                    {
144
                                        $('.buttonx').hide();
145
                                    }
146
                                })
147
                            }
148
                            data["category"] = value;
149
                            $("#EbayCatName").html(name);
150
                            $('#EbayCat').html(value);
151
                        }
152
                    });
153
 
154
                    $.getJSON(url, data, function(json) {
155
                        /* If select already had something selected, preserve it. */
156
                        var selected_key = $(':selected', self).val();
157
 
158
                        /* Clear the select. */
159
                        $("option", self).remove();
160
 
161
                        var option_list = [];
162
                        if ($.isArray(json)) {
163
                            /* JSON is already an array (which preserves the ordering of options) */
164
                            /* [["","--"],["series-1","1 series"],["series-3","3 series"]] */
165
                            option_list = json;
166
                        } else {
167
                            /* JSON is an JavaScript object. Rebuild it as an array. */
168
                            /* {"":"--","series-1":"1 series","series-3":"3 series"} */
169
                            for (var key in json) {
170
                                if (json.hasOwnProperty(key)) {
171
                                    option_list.push([key, json[key]]);
172
                                }
173
                            }
174
                        }
175
 
176
 
177
                        /* Add new options from json. */
178
                        for (var i=0; i!==option_list.length; i++) {
179
                            var key = option_list[i][0];
180
                            var value = option_list[i][1];
181
 
182
                            /* Set the selected option from JSON. */
183
                            if ("selected" === key) {
184
                                selected_key = value;
185
                                continue;
186
                            }
187
                            var option = $("<option />").val(key).append(value);
188
                            $(self).append(option);
189
                        }
190
 
191
                        /* Loop option again to set selected. IE needed this... */
192
                        $(self).children().each(function() {
193
                            if ($(this).val() === selected_key) {
194
                                $(this).attr("selected", "selected");
195
                            }
196
                        });
197
 
198
                        if(option_list.length == 1)
199
                        {
200
                            if(option_list[0][0]=== "eb")
201
                            {
202
                               var divEbayCat = document.getElementById("EbayCat");
203
                               divEbayCat.innerHTML = option_list[0][1];
204
                               /*var divEbayCatName = document.getElementById("EbayCatName");
205
                               divEbayCatName.innerHTML = option_list[0][0];*/
206
                               $(".buttonx").show();
207
 
208
                            } else {
209
                            }
210
 
211
                           $(self).hide("slide", "", 200);
212
                           return true;
213
                        } else {
214
                             $(self).show("slide", "", 200);
215
                            //$(self).removeAttr("hidden");
216
 
217
                        }
218
 
219
                        /* Force updating the children. */
220
                        $(self).trigger("change");
221
 
222
 
223
                    });
224
 
225
                });
226
 
227
                /* Force updating the children. */
228
                $(this).trigger("change");
229
 
230
            });
231
        });
232
    };
233
 
234
    /* Alias for those who like to use more English like syntax. */
235
    $.fn.remoteChainedTo = $.fn.remoteChained;
236
 
237
})(jQuery);