Gå til innhold

Simpel ajax funksjon, funker ikke


Anbefalte innlegg

Hei,

 

Jeg sitter her med noen jeg trodde skulle være et meget simpelt eksempel på å få ajax til å funke, men her er det ingenting som fungerer.

 

Så lurte på om noen kunne se over dette, den vil ikke loade javascripten ser det ut som for meg.

Jeg er litt trøtt, mulig det er det men, here we go:

 

HTML FIL:

<html>
<head>
<script src="script.js"></script>
</head>

<body>
<form>
<select name="drpTest" onchange="page(this.value)">
	<option value="1">Tekst 1</option>
	<option value="2">Tekst 2</option>
</select>
</form>
<div id="tekstBox">


</div>
</body>
</html>

 

Javascript fil

// JavaScript Document
var xmlHttp

function page(id){
alert("text");
xmlHttp = GetXmlHttpObject()
if(xmlHttp==null){
	alert("Browser dows not suppoert HTTP Request")
	return
}

var url = "getText.php"
url= url+"?q="+id
url = url+"&sid="+Math.random()
alert(url);
xmlHttp.onreadystatechange=stateChanged
xml.Http.open("GET", url, true)
xmlHttp.send(null)

}
function stateChanged(){
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
{
	document.getElementById("tekstBox").innerHTML = xmlHttp.responseText
}
}
function GetXmlHttpObject(){

	var xmlHttp = null;

	try{
		//For firefox, opera8+ og safari
		xmlHttp = new XMLHttpRequest();
	}catch (error){
		//For Internet Explorer
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (error){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (error){
				alert("Din nettleser støtter ikke ajax")
				return false;
			}
		}
	}

}
return xmlHttp;
}

PHP fil:

<?php
$id = $_GET["q"];

if($id == 1)
	echo("Dette er tekst 1");
else if($id == 2)
	echo("Dette er tekst 2");
else
	echo("Hvorfor er du her?");

?>

 

Noen tips?

Lenke til kommentar
Videoannonse
Annonse
du har gløymt ; fleire plasser

 

 

Fulgte den guiden her, og de har ikke brukt noen ; så derfor ble jeg litt i tvil, jeg er vant til java, og der har man jo ; hele tiden.

 

Så dette skal altså være med i javascript også?

 

edit:

Endre javascript kode til:

// JavaScript Document
var xmlHttp;

function page(id){
alert("text");
xmlHttp = GetXmlHttpObject();
if(xmlHttp==null){
	alert("Browser dows not suppoert HTTP Request");
	return;
}

var url = "getText.php";
url= url+"?q="+id;
url = url+"&sid="+Math.random();
alert(url);
xmlHttp.onreadystatechange=stateChanged;
xml.Http.open("GET", url, true);
xmlHttp.send(null);

}
function stateChanged(){
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
{
	document.getElementById("tekstBox").innerHTML = xmlHttp.responseText;
}
}
function GetXmlHttpObject(){

	var xmlHttp = null;

	try{
		//For firefox, opera8+ og safari
		xmlHttp = new XMLHttpRequest();
	}catch (error){
		//For Internet Explorer
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (error){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (error){
				alert("Din nettleser støtter ikke ajax");
				return false;
			}
		}
	}

}
return xmlHttp;
}

 

Men kan ikke si at det hjalp så mye, virker fortsatt som om javascript ikke blir loaded

Endret av Joakim87
Lenke til kommentar

Ta en titt på jQuery -- http://jquery.com/

 

Enklere blir det ikke.

 

 $.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
 alert( "Data Saved: " + msg );
  }
});

(tatt fra documentation)

 

Her inneholder altså variabelen «msg» responseText, og denne kan du lett skrive ut i klartekst. For å manipulære et html-element, gjør du simpelthen noe som

 

$('#tekstBox').html(msg);

Endret av loathsome
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...