Just nu i M3-nätverket
Jump to content

AJAX fungerar inte....


_Peter_Nilsson_

Recommended Posts

_Peter_Nilsson_

Jag har löst hela problemet. Jag har fått hela rasket att fungera nu.

Jag har stirrat mej blind på fel grejer hela tiden bara........

 

5 veckors huvudvärk släppte just....

 

Link to comment
Share on other sites

_Peter_Nilsson_

Jag har ju tre sidor som allt ligger på. Default.asp, ajax.js och getdatabasinfo. Default.asp innehåller två dropdownmenyer (ska göra när scriptet är igång och rulalr) där innehållet i den översta ska hämtas från en tabell. Den andra dropdownmenyns innehåll ska fyllas beroende på valet jag gör i den första och syns bara efter att jag har gjort mitt val i den första menyn. Sidan fick inte laddas om mellan varven.

 

Hela tiden så stirrade jag mej blind på javascriptet och den här raden:

document.getElementById("getlopp").innerHTML=xmlHttp.responseText;

 

Den raden skulle, trodde jag, hämta in XML listan som databas sidan skapade...... och som jag sedan, trodde jag igen, kunde formatera om och fixa in i en dropdownmeny........

 

Men efter tips från en annan sida så tänkte jag om och lät en färdig dropdownmeny skapas redan på databassidan för att sedan bara lyftas rakt in till default -sidan med hjälp av en DIV.

 

Så kortfattat:

Jag gör mitt val i min första dropdownmeny. Valet skickas till javascriptet som gör en förfrågan till databas -sidan. ASP sidan med databaskopplingen gör en färdig dropdownmeny:

 

response.write(" <SELECT NAME=""LoppNamn"">")

response.write(" <OPTION VALUE="""">--- V&auml;lj lopp ---</option>")

do until rs.EOF

for each x in rs.Fields

response.write("<OPTION VALUE="""&x.value&""">"&x.value&"</OPTION>")

next

rs.MoveNext

loop

response.write("</SELECT>")

 

Javascriptet hämtar in vad ASP sidan skapade med denna javascriptkod:

document.getElementById("txtHint").innerHTML=xmlHttp.responseText;

}

}

 

I formuläret på default sidan länkar jag in den färdiga dropdownmenyn med en DIV:

<DIV ID="txtHint">När menyn är färdig visas den här.</DIV>

 

 

Hela lösningen finns här:

http://www.w3schools.com/AJAX/ajax_database.asp

 

 

 

Link to comment
Share on other sites

_Peter_Nilsson_

Problemet jag har kvar nu (det lilla problemet) är att åäö inte visas korrekt.

 

Databasen tar fram och visar sitt resultat med åäö dvs korrekt.. men så fort som resultatet länkas över till min default sida med en DIV via javascriptet så försvinner åäö och ersätts på något märkligt sätt.

 

Det ser ut så här.... först det som står i databasen och sist hur det presenteras på min sida.

 

i DB --- i dropdownmenyn

åke = ?

älva = ?a

örike = ?e

 

ÅKE = ?VA

ÄLVA = ?VA

ÖRIKE = ?IKE

 

 

Finns det någon snabb lösning på detta ?????

 

Link to comment
Share on other sites

det är teckenkodningen som inte är samma överallt.

I samtliga filer + databas måste du använda samma

Antingen spara som utf-8 och ange detta i metataggar eller

iso8859-1 (ANSI) i filer och latin_1 i databas.

 

Sök i forumet för mer information om detta

 

Link to comment
Share on other sites

_Peter_Nilsson_

Ska kolla upp det.

 

Tror inte att jag har med någonting alls om teckenkodning på mina sidor. Det har funkar bra utom på den här javasidan med DIVen och AJAX lösningen. Tror bestämt att det är fler som haft detta problem fast det yttrat sej på lite olika sätt.

 

Men nu verkar det inte gå att söka bland forumen här på IDG av någon märklig anledning. Får söka via eniro och/eller google istället.

 

Tack för det

 

[inlägget ändrat 2008-12-23 17:03:17 av _Peter_Nilsson_]

Link to comment
Share on other sites

_Peter_Nilsson_

Nu har jag provat alla varianter att få rätt tecken (åäö) i min dropdownmeny utan att lyckas.

 

Någon som vet vad som kan vara fel ?

 

Link to comment
Share on other sites

_Peter_Nilsson_

åäö fungerar på precis ALLA sidor utom just i den här enskilda dropdownmenyn. En meny som hämtas från en databas sida via javascriptet.

 

Kollar jag på databas sidan så fungerar det helt perfekt. Så jag har lokaliserat felet kring javascriptet. Kan det vara någonstans där jag ska ange teckentabell ?????

 

Link to comment
Share on other sites

ja du skall väl ange det på alla sidor, för att vara helt safe

 

 

Har du kontrollerat den sida som skickar datan för select-boxen att det blir rätt om du bara kör den själv utan att anropa den från javascript?

Det är lite så man får felsöka.

 

Link to comment
Share on other sites

_Peter_Nilsson_

Jonas_Bo .... Jag har kört databas sidan för sej själv och den fungerar och visar rätt .. dvs åäö = inga problem så långt. Problemet börjar när javascriptet ska hämta in samma select-box..... de är då det (på ren svenska) skiter sej..

 

Jag är inte så bevandrad i javacript.... men det är något som scriptet gör som inte blir rätt.

 

Förmodligen så är jag helt ute och cyklar nu.... men kan det vara något med dessa rader som spökar:

 

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

 

 

 

 

Här är hela javascriptet:

 

var xmlHttp

function VisaLoppen(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
} 
var url="Include/getInfo.asp";
url=url+"?Datum="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged() 
{
	if (xmlHttp.readyState==4)
	{

	document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
	}
	else{
	document.getElementById("txtHint").innerHTML="<img src=\"../Bilder/ajax-loader.gif\" />";
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

 

KOD-taggar tillagda av moderator

 

 

[inlägget ändrat 2008-12-24 11:07:45 av Cluster]

Link to comment
Share on other sites

då är det javascriptet som hämtar datan i annan teckenkodning

 

lägg till ovan "var url="...

       xmlHttp.setRequestHeader( "Content-Type", "text/xml;charset=utf-8" ); 

 

 

Ta sedan jul.

 

Link to comment
Share on other sites

_Peter_Nilsson_

snutten fungerade inte alls.......

 

Jul ska jag absolut ta..... men de e svårt när man har detta hängandes över.....

 

Link to comment
Share on other sites

_Peter_Nilsson_

Fungerade inte riktigt det heller. Jag får "odefinierat fel".....

 

Sen verkar det inte spela någon roll var i scriptet jag lägger in det. Lägger jag det någonstans där jag inte får "odefinierat fel" så har det endå ingen effekt. :(

 

Jag är tacksam för alla förslag !

 

Link to comment
Share on other sites

_Peter_Nilsson_

FEL FEL FEL

 

Problemet är visst inte alls löst som jag trodde.

 

 

Jag öppnade ASP sidan i windows texteditor och sparade om filen med (spara som...) och valde då teckenkodning UTF-8. Vips så fungerade hela rasket.

 

Men när jag lägger till något nytt i databasen och sen tittar på sidan där mitt formulär ligger så är allt krachat igen.

 

Kan det bero på själva databasen eller vad ?

och isåfall.... hur ärndrar jag teckenkodningen i databasen ?

 

fattar ingenting ?!?!?

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...