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

Reply via email to