Oh, the reason I used a function instead of: extraParams: {catID:categoryID},
is because the function acts as a callback that will execute right before the AJAX call to get the updated data for categoryID, otherwise it will just be the same as the URL, set only on initialization (which is blank). On Aug 27, 11:13 am, James <james.gp....@gmail.com> wrote: > I haven't tested this, nor tried it before, but based on the > documentation the data type of extraParams has to be an object, or a > function (that probably returns an object). > > function getCategoryID() { > return {catID:categoryID}; > // 'catID' will be the name of the categoryID in your script > // e.g. /?catID=vegetable > > } > > //Item Search for food name > $("#add-item #ITEMNAME").autocomplete("<?= site_url('aloha/ > item_search'); ?>", { > extraParams: getCategoryID, > selectFirst: false, > formatItem: formatItem, > formatResult: formatResult > }).result(function(row, item, data) { > $('#add-item #ITEMNAME').val(item[0]); > $('#add-item #ITEMID').val(item[1]); > }); > > On Aug 27, 10:26 am, WhoButSB <whobu...@gmail.com> wrote: > > > Thank you James for the help! I didn't know that the address is > > static once you've initialized it. I'm trying to work with the > > extraParams option but it doesn't seem to do anything. Here is how I > > have it set: > > > //Item Search for food name > > $("#add-item #ITEMNAME").autocomplete("<?= site_url('aloha/ > > item_search'); ?>", { > > extraParams: categoryID, > > selectFirst: false, > > formatItem: formatItem, > > formatResult: formatResult > > }).result(function(row, item, data) { > > $('#add-item #ITEMNAME').val(item[0]); > > $('#add-item #ITEMID').val(item[1]); > > }); > > > Just setting it like that doesn't seem to add anything to AJAX call. > > > On Aug 27, 4:11 pm, James <james.gp....@gmail.com> wrote: > > > > It's not really a variable scope problem. You're misunderstanding when > > > variables are set. > > > This is what's happening: > > > > set global variable categoryID > > > add change event > > > add autocomplete with URL set to aloha/item_search/"+categoryID > > > -> categoryID is blank > > > do rest of page > > > > When you do your change event, you do update the categoryID variable, > > > but not the autocomplete URL. Once that URL is set on initialization, > > > it's set. Changing categoryID is not going to change the autocomplete > > > URL. > > > > I'm not sure if there is a way to update the autocomplete URL once > > > it's initialized without having to re-initialize it again. Is it > > > necessary that the URL has to change? Could you not use autocomplete's > > > 'extraParams' option to add additional data to the > > > call?http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_datao... > > > The difference with using extraParams is that the values are > > > calculated at the time of the call, so you'll have dynamic values. > > > > On Aug 27, 7:06 am, WhoButSB <whobu...@gmail.com> wrote: > > > > > Hello All, > > > > > I'm running into some issues where I'm alittle confused about the > > > > scope of my variables. > > > > > I have this code: > > > > > $(function(){ > > > > > var categoryID; > > > > > //Aloha Item Category Dropdown Selection > > > > //Takes the Selected Value and adds it to Item Search Ending > > > > $("#add-item select[name='CategoryId']").change(function(){ > > > > categoryID = $("#add-item select[name='CategoryId'] > > > > :selected").val > > > > (); > > > > return categoryID; > > > > }); > > > > > //Item Search for food name > > > > $("#add-item #ITEMNAME").autocomplete("<?= site_url('aloha/ > > > > item_search'); ?>/"+categoryID, { > > > > selectFirst: false, > > > > formatItem: formatItem, > > > > formatResult: formatResult > > > > }).result(function(row, item, data) { > > > > $('#add-item #ITEMNAME').val(item[0]); > > > > $('#add-item #ITEMID').val(item[1]); > > > > }); > > > > > } > > > > > What I'm trying to do is take a selection value from a drop down menu > > > > and append the value to the end of the URL in the auocomplete plugin. > > > > For some reason I'am not able to get this to work. Whenever I view > > > > the AJAX request it says that the value is undefined. But if I put a > > > > console.log() into where I select the value it comes up correctly. I > > > > believe its the way i'm defining the vairables scope. THank you for > > > > the help! > >