10 Replies Latest reply: Nov 6, 2008 8:24 AM by StewStryker RSS

    AJAX region pull

    443762
      I am using ajax to display a region from another page. This region has 2 text fields and a button that when pressed branches to another page. When I input the data and click the button I get an error:

      Error Item ID (10060522396890067) is not an item defined on the current page.

      Any suggestions?
        • 1. Re: AJAX region pull
          Denes Kubicek
          I saw this happening after upgrad to 3.1. Find out which item id it is and delete it. After deletion you need to recreate the same.

          Denes Kubicek
          -------------------------------------------------------------------
          http://deneskubicek.blogspot.com/
          http://www.opal-consulting.de/training
          http://htmldb.oracle.com/pls/otn/f?p=31517:1
          -------------------------------------------------------------------
          • 2. Re: AJAX region pull
            443762
            I actually created this after we upgraded to 3.1, but I deleted and re-created the text item inputs on the region I am pulling from anyway but I am still getting the rror.
            • 3. Re: AJAX region pull
              443762
              If the region runs correctly when I run that page (144) stand alone I am unsure why it would get confused when I pull it onto page 1 from page 144 and run it. Is the wwv_flow.accept firing on page 1 or page 144?
              • 4. Re: AJAX region pull
                443762
                Ok. This is what I did:



                I have Page 1 designated as my Dashboard Page.



                On Page 144 I have region (‘STUDENT_SEARCH’) with 3 form_elements (‘P144_STUDENT_SEARCH_ID’, ‘P144_STUDENT_SEARCH_LAST_NAME’,’P144_STUDENT_SEARCH_FIRST_NAME’) and ‘Go’ button that branches to an interactive report (passing the 3 elements as IR filters).



                I want to display the ‘STUDENT_SEARCH’ region from Page 144 on Page 1.



                In the HTML header of Page 1 I created this function.



                function test_inner3(){

                var get = new htmldb_Get(null,$x('pFlowId').value,null,144);

                gReturn = get.get(null,'<div id="STUDENT_SEARCH">','</div id="">');

                $x('col3').innerHTML=gReturn;

                }



                I have a PL/SQL region on Page 1 that calls this function:



                BEGIN

                htp.p('<script>

                test_inner3();

                </script>');

                END;





                The ‘STUDENT SEARCH’ region from page 144 displays fine. But when I try to submit, I get an error saying ‘item IDxxxxxxxxxx does not exist on the current page’. I did an export of the application and viewed the file for ‘IDxxxxxxxxxx’. It seems to be pointing to ‘P144_STUDENT_SEARCH_ID’. Am I missing something?
                • 5. Re: AJAX region pull
                  StewStryker
                  I'm getting the same error, also running Apex V3.1 <strong>using FireFox</strong>. I just noticed that it doesn't get this error in <strong>Internet Explorer 6</strong>. IE seems to do everything just fine. If I try to run in Google Chrome (even though that won't be supported for this application), it won't do the AJAX pull or run the process when you click the Save button. Aaagh!



                  Even though I created the application under Apex 3.1, I tried the suggestion above of dropping the item and recreating it (using the same name).



                  I used the AJAX Region Pull code from the late, great Carl Backstrom. It works nicely so long as I don't try to save changes on my form.



                  I just disabled the Update process and the form still gives the above error.



                  If no one else is trying this, can anyone even suggest a way to debug this? I've added Javascript to my Apex apps before, but never struggled quite this much.



                  Thanks,







                  Stew

                  Edited by: StewStryker on Nov 5, 2008 1:45 PM
                  • 6. Re: AJAX region pull
                    Arie Geller
                    Hello Stew,

                    Can you put an example of what you are trying to do on apex.oracle.com? It will be much easier for us to understand, follow the code you are using, and try to help.

                    In principle, AJAX related methods, in the APEX built-in library are written to support both IE and FF at the same time.

                    Regards,
                    Arie.
                    • 7. Re: AJAX region pull
                      StewStryker
                      Arie,

                      I just recreated the functionality on apex.oracle.com at

                      http://apex.oracle.com/pls/otn/f?p=51000

                      Instructions are on both visible pages.

                      Basically, from a report of demo_orders, select an order. Then on the demo_orders form, change the customer using the Select List. Customer is <strong>not</strong> the primary key, so the value should be changeable. Click the Apply button and see Apex's error.

                      I've created a developer account for folks to try it out:

                      Workspace: STEWATDART

                      User: ariedev

                      Password: ariearie1

                      Thanks very much,

                      - Stew
                      • 8. Re: AJAX region pull
                        60437
                        See my response at Partial refreshing of pages in 2.0 ? .

                        Scott
                        • 9. Re: AJAX region pull
                          Arie Geller
                          Hello Stew,

                          As I suspected, your problem (and the others who started this thread) has nothing to do with the browser you are using, but in the way you are using the technique described by Carl, and was (of course) spotted correctly by Scott.

                          In my answer, I’m also referencing your post in here - Re: Partial refreshing of pages in 2.0 ?

                          >> I've looked at the source that's generated by my page and don't find an extraneous <form> tag

                          Carl didn’t mean the <form> tag itself but to form input components in general, like items. In your case, we are talking about ‘P20_CUST_ID’, which you defined as a hidden item on page 20. Although hidden, this item is being rendered on page 20, and is included in the ‘box’ you are clipping from this page. While submitting page 2 (apply changes) the APEX engine finds on page 2 and item which not belong to this page, so it issue an error message.

                          In your specific case, where the item – P20_CUST_ID – is a hidden one, the solution is very simple. Just set the condition of the item to ‘never’. That will prevent it from being rendered on page 20, so it will not be copied to page 2. I did that on your demo application, and now it seems to work just fine.

                          In general, if the item you are using in the remote page must be a regular item (and not a hidden one) you need to use Scott suggestion, and put it in a region that you don’t clip as part of your AJAX process.

                          Regards,
                          Arie.
                          • 10. Re: AJAX region pull
                            StewStryker
                            Arie and Scott,

                            Thanks for the replies. I'm still enough of a noob to have not understood just what items Scott was talking about, but Arie's detailed explanation cleared it up perfectly!

                            Thanks for explaining so clearly that even I could understand! :-)

                            If I could give you points for the answer, I would!

                            Thanks again for everyone's help,

                            Stew