Is the ampersand part of the XML message being sent
back to the browser from the servlet? If so, you need
to escape the ampersand  in the servlet before it is
sent in the servlet response. The ampersand is a
special character in XML.

-Richard

--- "Frank W. Zammetti" <[EMAIL PROTECTED]> wrote:

> That's kind of what I was afraid of... makes it more
> difficult to deal with.
> 
> The getAttribute() method is actually a method of
> the node object, which
> is what your dealing with by that point in the code.
>  It's not even an
> AJAX question at that point.  You might try doing
> items[i].nodeValue
> instead, or perhaps even .innerHTML might work (note
> these are properties,
> not methods)... I lost the XML you sent perviously,
> and I don't remember
> if your values were attributes or the content of a
> tag.
> 
> The only note of interest I found was that if you
> are using IE,
> getAttribute() can return the value as a string,
> number or boolean,
> whereas other browsers will return it as a string
> exclusively... if you
> happen to be using IE, that could be the problem,
> and going after the
> nodeValue itself *might* get around it.
> 
> -- 
> Frank W. Zammetti
> Founder and Chief Software Architect
> Omnytex Technologies
> http://www.omnytex.com
> 
> On Tue, September 6, 2005 11:37 am,
> [EMAIL PROTECTED] said:
> > Gareth,  try/catch didn't reveal anything.
> >
> > Frank, after numerous alerts, the problem seems to
> be in getAttribute(...)
> > function of AJAX:
> >
> > for (var i = 0; i < items.length; i++) {
> >   alert("ID:" + items[i].getAttribute('dataID'));
> >   alert("Value:" +
> items[i].getAttribute('dataValue'));
> > }
> >
> > Here is that AppendValues(...) method
> >
> >     function AppendValues(col,arr,label)
> >     {
> >       col.options[col.options.length] = new
> Option(label);
> >       col[col.length-1].value = arr;
> >     }
> >
> >
> > "Frank W. Zammetti" <[EMAIL PROTECTED]> wrote:
> > Ok, two things...
> >
> > (1) Throw an alert in right before the call to
> AppendValues() :
> >
> > alert(items[i].getAttribute('dataID') + " = " +
> > items[i].getAttribute('dataValue'));
> >
> > Make sure you see the ampersand in there.
> >
> > (2) Assuming you do see the ampersand in that
> alert, let's see the code
> > for AppendValues(), because it has to be where the
> problem is then.
> >
> > Frank
> >
> > --
> > Frank W. Zammetti
> > Founder and Chief Software Architect
> > Omnytex Technologies
> > http://www.omnytex.com
> >
> > On Tue, September 6, 2005 10:43 am,
> [EMAIL PROTECTED] said:
> >> Here you go Frank:
> >>
> >> AJAX CODE:
> >>
> >> function getNewXMLHttpRequest() {
> >> var _req;
> >> // branch for native XMLHttpRequest object
> (safari/mozilla)
> >> if (window.XMLHttpRequest) {
> >> _req = new XMLHttpRequest();
> >> }
> >> // branch for IE/Windows ActiveX version
> >> else if (window.ActiveXObject) {
> >> _req = new ActiveXObject("Microsoft.XMLHTTP");
> >> }
> >> return _req;
> >> }
> >> function getdataValues(fieldname){
> >> var state =
> >>
>
document.actionForm.state[document.actionForm.state.selectedIndex].value;
> >> var url = "getXMLValues.jsp?state="+state;
> >> var xmlhttp = getNewXMLHttpRequest();
> >> xmlhttp.open("GET",url,true);
> >> xmlhttp.onreadystatechange = function() {
> >> if (xmlhttp.readyState == 4) {
> >> if (xmlhttp.responseXML != null) {
> >> var items =
> >>
> xmlhttp.responseXML.getElementsByTagName("dataSet");
> >> var culumnname = eval("document.actionForm." +
> fieldname);
> >> for (var i = 0; i < items.length; i++) {
> >> AppendValues(culumnname,
> items[i].getAttribute('dataID'),
> >> items[i].getAttribute('dataValue'));
> >> }
> >> culumnname.selectedIndex=0;
> >> }
> >> }
> >> }
> >> xmlhttp.send(null);
> >> }
> >>
> >>
> >> JSP CODE:
> >> > Select a State>
> >> > Select a Country>
> >>
> >> SERVLET CODE (modified...)
> >>
> >> ( multiple checks...)
> >> if (state != null && state.length() > 0) {
> >> searchFor = "COUNTRY_ID, COUNTRY_NAME";
> >> whereIs= "STATE = '" + state + "'";
> >> }
> >>
> >> sql = "SELECT " + searchFor + " FROM DATA_TABLE
> WHERE " + whereIs;
> >>
> >> Compile data from that query to xml and return to
> browser.
> >> eg:
> >> > dataValue="United States & US Vargin Islands"
> />>
> >> dataValue="Australia" />
> >>
> >>
> >>
> >> "Frank W. Zammetti" wrote:
> >> Let me see if I'm all caught up here (I'm just
> back to work from
> >> vacation
> >> today, so my brain isn't fully engaged yet)...
> >>
> >> Everything works as expected up until the point
> you try to populate the
> >> dropdown on the client, correct? The XML you get
> back from the servlet
> >> is
> >> correct, so the problem lies somewhere in the
> code to populate the
> >> dropdown. Sound about right?
> >>
> >> If so, can you post said code? We might be able
> to spot something there.
> >> Off-hand I can't think of what the problem might
> be, I don't think I've
> >> ever seen this before... I did see some issues
> with internationalized
> >> data
> >> at one point, but ampersand I don't think falls
> in that category.
> >>
> >> --
> >> Frank W. Zammetti
> >> Founder and Chief Software Architect
> >> Omnytex Technologies
> >> http://www.omnytex.com
> >>
> >> On Tue, September 6, 2005 10:16 am,
> [EMAIL PROTECTED] said:
> >>> Gareth, you are correct abut ajax being
> independent. In my case, the
> >>> interesting thing is that the servlet is using
> database to look up the
> >>> data and requires where cause as a parameter so
> that it can generate a
> >>> query, retrieve data from database, create xml
> to be passed to the
> >>> calling
> >>> .jsp page.:
> >>>
> >>> i.e.: here are the steps
> >>>
> >>> 1. onchange() getdataValues.jsp?state='NY'
> >>> 2. in servlet, ( multiple checks...)
> >>> if (state != null && state.length() > 0)
> >>> {
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to