Since you have two topics going on the same exact topic, i'll repeat what i suggested in topic # 2:
Stop using the minified version for debugging purposes.... if your code doesn't work, you should be using the "full" version of jQuery, as the minified version adds a LOT of complexity when trying to figure out what (bad) is going on On Dec 14, 6:03 pm, Henjo <henjohoek...@gmail.com> wrote: > Hi Scott, > > thanks very much for your elaborate writing. This should give me > enough to work on it and get it done. > I am rather new to jQuery and ajax altogether - so that my code > wouldn't get a 10 I understand ;-) > > Thanks for your evaluation on this. > > I did install Fiddler & Firebug Lite and got some info from that - but > by far not enough to understand what goes wrong. > > I will rework on this and at least post back when it works. > > Thanks again. > > Henjo > > On Dec 14, 11:41 pm, Scott Sauyet <scott.sau...@gmail.com> wrote: > > > On Dec 14, 4:33 pm, Henjo <henjohoek...@gmail.com> wrote: > > > > Here's the link to the website, it is the product wizard > > > form:http://bit.ly/7v8pHu > > > Okay, if you haven't used Fiddler [1], it's pretty useful for testing > > HTTP request on IE, something like LiveHTTPHeaders for Firefox, and > > more general. > > > The first thing I found is that IE isn't even submitting the second > > request. It's a little hard to try to build my own version of this to > > determine why, but you might want to either use Firebug Lite [2] as > > someone suggested in another thread or simply add some alerts to see > > how far it gets. You should be able to quickly nail down whether it > > gets to the jQuery ajax call at all. If it does, you probably can > > supply more information for this list. If not, hopefully the line it > > stops on can supply you with help. > > > But I'm going to suggest that you rethink the code design altogether. > > Rather than returning the whole set of select elements as HTML, I > > would suggest that you return some JSON, either the data for all three > > select boxes or the data for each successive one. > > > Then I think you could write a function named, say, "linkedDropdowns", > > which you would use like this: > > > linkedDropdowns("option1", "option2", function() { > > return {option1: $("#option1 select").val()}; > > }); > > linkedDropdowns("option2", "option3", function() { > > return {option2: $("#option2 select").val()}; > > }); > > > This function would bind the change event on the element named by the > > first argument to a function that merged the results of calling the > > third argument with your common data ({L: TYP03_LANG}) and then > > perform an ajax call using that merged data. The success function of > > that ajax call would update the element named by the second argument > > using the JSON data supplied, and perform the scrolling or hiding > > necessary for your UI. It would probably delegate the updating to > > another function which you could also use to populate the initial > > list. > > > This would make it easier to add additional steps as needed, or to > > return something additional in the JSON that says there are no > > additional steps. The deeply nested code you've got is likely to be > > difficult to maintain. > > > I don't have time to try to code something like this myself now, but > > the main code might look something like this: > > > var defaults = {L: TYP03_LANG}; > > > function updateSelect(select, data) { > > // loop through the results in data creating the inner HTML > > for the select box > > $("#" + select).html(myHTML); > > // hide all the select boxes (perhaps with visibility and size > > rather than "hide"), then reset the current one to visible > > } > > > function linkedDropdown(select1, select2, fn) { > > $("#" + select1).change(function() { > > $.get("index.php?eID=tx_knowledgebase_pi1", $.extend > > (defaults,fn()), function(data, textStatus) { > > // if good text status > > updateSelect(select2, data); > > }, "json") > > }); > > } > > > $.get("index.php?eID=tx_knowledgebase_pi1", defaults, function > > (data, textStatus) { > > updateSelect("option1", data); > > }); > > > linkedDropdowns("option1", "option2", function() { > > return {option1: $("#option1 select").val()}; > > }); > > linkedDropdowns("option2", "option3", function() { > > return {option2: $("#option2 select").val()}; > > }); > > > Of course this is probably full of typos, and maybe it wouldn't work > > at all for your case, but I think it would be easier to write > > something reusable like this and then use if a few times in your code > > than to do this deeply nested, and very fragile-looking code. > > > Good luck, > > > -- Scott > > > [1]http://www.fiddler2.com/fiddler2/ > > [2]http://getfirebug.com/lite.html