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!
>
>

Reply via email to