WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Javascript hjälp (https://www.wn.se/forum/showthread.php?t=25789)

SumoSilent 2007-12-20 12:48

Hej alla.

Jag är inte så duktig på javascript så jag kan inte fatta vad det är jag gör fel.

Fel meddelandet "Objektet stöder inte egenskapen eller metoden".

Jag har testat och jag får fram xml filen men jag fattar inte varför det inte fungerar :(.

Så om någon kunde hjälpa mig vore jag väldigt tacksam!

Kod:

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 var xmldoc = xmlHttp.responseText;
      var main = xmldoc.getElementsByTagName('main').item(0);
        var node = main.childNodes.item(0);

      document.getElementById("pname"+div).value=node.childNodes.item(0);
  document.getElementById("image1"+div).src=node.childNodes.item(1);
  document.getElementById("image2"+div).src=node.childNodes.item(2);
  document.getElementById("count"+div).value=node.childNodes.item(3);
  document.getElementById("price"+div).value=node.childNodes.item(4);
  document.getElementById("oprice"+div).value=node.childNodes.item(5);
  document.getElementById("nprice"+div).value=node.childNodes.item(6);
 }
}


coredev 2007-12-20 13:44

vilken rad?

WizKid 2007-12-20 14:06

Skulle gissa att felet ligger på raden: var main = xmldoc.getElementsByTagName('main').item(0);

xmldoc är ju responseText och är därför en sträng och har då inte metoder som getElementsByTagName. Testa att använda responseXML tror jag det heter.

SumoSilent 2007-12-20 14:28

Eftersom jag har javascripten i en extern fil så får jag bara rad nr på föregående sida.

Citat:

WizKid
var xmldoc = xmlHttp.responseText;
är det dom som ska vara
var xmldoc = xmlHttp.responseXML; ?

WizKid 2007-12-20 14:29

Det är min gissning att det kan fungera. Jag är hundra på att du inte kan göra getElementsByTagName på responseText i alla fall.

SumoSilent 2007-12-20 14:45

Nu står det i stället "Objekt krävs"

WizKid 2007-12-20 15:01

Ett tips är att felsöka i Firefox med Firebug installerat. Då kommer du få ruskigt mycket bättre felmeddelanden.

SumoSilent 2007-12-20 15:07

xmldoc has no properties
stateChanged()java.js (line 28)
[Break on this error] var main = xmldoc.getElementsByTagName('main').item(0);

WizKid 2007-12-20 15:22

Vad sätter du xmldoc till?

Har du testat att skriva ut responseText för att se om du får något svar överhuvudtaget.

Sen skulle jag föreslå att använda jQuery eller Prototype och skicka informationen som JSON istället för XML.

SumoSilent 2007-12-20 15:28

Jag kör en alert box och där får jag all information.

var xmldoc = xmlHttp.responseXML;

Det är det ända som stätts

SumoSilent 2007-12-20 15:31

När jag gör en Alert på xmlHttp.responseXML så får jag tillsvars [object] i IE och Null i FF

WizKid 2007-12-20 15:33

Då har jag ingen aning tyvärr. Möjligen att responseXML klagar om svaret inte är korrekt XML.

Använder alltid jQuery och JSON själv.

SumoSilent 2007-12-20 15:49

Kod:

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 items = eval('(' + xmlHttp.responseText + ')');

 document.getElementById("pname"+divvalue).value=items['item'].ProductName
 document.getElementById(""+divvalue).src=items['item'].Image
 document.getElementById(""+divvalue).src=items['item'].Imagebrand
 document.getElementById(""+divvalue).value=items['item'].ProductOrdPrice
 document.getElementById(""+divvalue).value=items['item'].ProductOurPrice
 document.getElementById(""+divvalue).value=items['item'].ProductGrosPrice
 document.getElementById(""+divvalue).value=items['item'].ProductBrandId


 }
}

Så gjorde om det lite kvickt till JSON men jar har lite problem med detta också :)

"Document.getElementById("pname" + divvalue) has no properties"

WizKid 2007-12-20 15:58

och vad har divvalue för värde?

SumoSilent 2007-12-20 18:08

divvalue får ett värde beroende vart man trycker men som standard är den 1

WizKid 2007-12-20 18:11

För mig låter det som felmeddelandet klagar på att det inte finns något element med id = "pname"+divvalue.

SumoSilent 2007-12-20 23:26

Fixade till det så det inte blir något felmeddelande men jag får följande:

"undefined"

Har skrivit följande:
document.getElementById("pname"+divvalue).value=it ems['item'].ProductName

så är värdet jag skriver det som:

{"item" :[{ "ProductName" : "Test" }]}

SumoSilent 2007-12-20 23:27

*UPDATE lösta det hade glömt att skriva document.getElementById("pname"+divvalue).value=it ems['item'][0].ProductName

Tack så mycket för all hjälp WizKid


Alla tider är GMT +2. Klockan är nu 13:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson