Okay, I am tearing what hair I have left out. The following code should illustrate what exactly I'm trying to accomplish, but with my feeble understanding of jQuery I can't seem to be getting what I want:
<script type="text/javascript"> function which (choice){ var selectVal = document.getElementById('bchained').value; if (choice == 'countryList') { selectVal += '_1.js'; alert(selectVal); return selectVal; } else { selectVal += '_2.js'; alert(selectVal); return selectVal; } } jQuery(document).ready(function() { jQuery("#bchained_child").cascade("#bchained",{ ajax: {url: yo=which('cityList') }, template: commonTemplate, match: commonMatch }); jQuery("#bchained_sub_child").cascade("#bchained_child",{ ajax: {url: mo=which('cityList') }, template: commonTemplate, match: commonMatch }); }); </script> This seems to make perfectly logical sense, except that when my function which() is called, the line document.getElementById('bchained').value; is ONLY returning the value of that element AS IT WAS WHEN THE PAGE WAS FIRST LOADED. For some reason that I don't understand the value is not updated when a different selection is made in the box (according to firebug). Please help me someone if you can!!!! :) I'm trying to hang in there.... ;) On Feb 2, 10:26 am, James <james.tilb...@gmail.com> wrote: > @boermans > > The first thing I tried was your example: > > ajax: {url: $("select#chained").val() +'_1.js'}, > > I don't think this works inside this structure, but then I'm not > reallty sure how to test the variable INSIDE THIS STRUCTURE! :) > > Here is my whole code now... > > <script type="text/javascript"> > > var selectVal = $("select#bchained").val(); > var countryList = selectVal + '_1.js'; > var cityList = selectVal + '_2.js'; > alert (countryList); //just to test the varaible > alert (cityList); //just to test the variable > jQuery(document).ready(function() > { > jQuery("#bchained_child").cascade("#bchained",{ > ajax: {url: countryList}, > template: commonTemplate, > match: commonMatch > }); > alert(selectVal, jsonUrl); > > jQuery("#bchained_sub_child").cascade("#bchained_child",{ > ajax: {url: cityList }, > template: commonTemplate, > match: commonMatch > }); > }); > </script> > > The two alerts pop up when the page is first loaded or reloaded and > the variables are correct. However, I don't think they get changed > when the value in the select box gets changed. In other words, that > first variable declaration var selectVal = $("select#bchained").val(); > only happens when the page is LOADED/RELOADED, and not dynamically > through the DOM. > > I need to figure out how to get either a) those variables updated when > a select box value changes, or b) some way to append my simple file > extensions to the value inside the ajax: {url: ???} call..... > > Is there a way to add a function inside the ajax: {url: } structure? > > On Feb 2, 5:33 am, boermans <boerm...@gmail.com> wrote: > > > On Feb 2, 5:20 pm, James <james.tilb...@gmail.com> wrote: > > > > But let's say I want to append an extension to "pizza". For example I > > > want "pizza.json", or "pizza_1.js". > > > > How do I get this extra string text into the ajax option above? > > > > I have tried + notation, various combinations of brackets, etc. But I > > > just can't get it to work and can't find appropriate documentation > > > anywhere on this. > > > It could be useful to see your code - even if it’s not working. > > > Did it look anything like this? > > > ajax: {url: $("select#chained").val() +'_1.js'}, > > > If that doesn’t work, break it down: > > > var selectVal = $("select#chained").val(); > > var jsonUrl = selectVal + '.json'; > > > and use the variable > > > jQuery("#chained_sub_child").cascade("#chained_child",{ > > ajax: {url: jsonUrl}, > > template: commonTemplate, > > match: commonMatch > > }); > > > If that’s not working you can try something like this to help reveal > > where the problem is > > console.log(selectVal, jsonUrl); > > > Hope that gets you on the road :)