Gå til innhold

Kjøre et AJAX script i et AJAX element?


Anbefalte innlegg

Jeg har nettopp startet å bruke AJAX etter å funnet ut hvor ubrukelig iframes egentlig er, men da jeg har null erfaring med JavaScript trenger jeg råd til hvordan jeg kan oppnå at jeg på side "X" har et ajax-javascript som når det aktiveres populereren en <div> med innholdet til side "Y", på side "Y" har et ajax-javascript som aktiveres av en knapp som skal populere <div>-en den står i med side "Z". Dette vil ikke skje. Noan nettsider snakker om 'eval()' men jeg kjenner ikke til eventuell bruk av dette objectet i min eksisterende kode.

 

hvis noen kunne peke meg i riktig retning hadde jeg blitt kjempglad for dette har jeg strevet med i noen dager nå.

 

Takk for all hjelp!!

 

eksempelkode:

 

index.php ("X"):

<!DOCTYPE HTML>
<html>
<head>
	<title>
		Lorem ipsum dolor sit amet
	</title>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript">
		function loadXMLDoc()
		{
		if (window.XMLHttpRequest)
		  {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		  }
		else
		  {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		xmlhttp.onreadystatechange=function()
		  {
		  if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
			document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
			}
		  }
		xmlhttp.open("GET","test2.php",true);
		xmlhttp.send();
		}
	</script>
</head>
<body>
	<div id="wrapper">
		<div id="banner">

		</div>
		<div>
			<button type="button" onclick="loadXMLDoc()">Change Content</button>
		</div>
		<div>
			<div id="myDiv"><h2>Let AJAX change this text</h2></div>

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

 

test2.php ("Y"):

<script class="AJAXscript" type="text/javascript">
function loadXMLDoc2()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
	{
	document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
	}
  }
xmlhttp.open("GET","test3.php",true);
xmlhttp.send();
}
</script>

<button type="button" onclick="loadXMLDoc2()">hi</button>

 

test3.php ("Z"):

<?php
echo "success";
?>

Lenke til kommentar
Videoannonse
Annonse

For å "bumpe" postingen min, og for å omformuler spørsmålet litt svarer jeg min egen posting:

 

Er det en måte å delvis reloade et <div> objekt som har akkurat hentet html/javascript gjennom AJAX? Det vil løse problemet over. Altså da vil <div> "boksen" oppføre seg som en iframe, men allikavel ikke være en iframe, som formodentlig er håpløst å bruke, og burde ikke inkluderes i html5 standarden...

Lenke til kommentar

Tre filer, henholdsvis test.html, test2.html og test3.html

 

<!DOCTYPE html>
<html>
<head>
	<title>Lorem ipsum dolor sit amet</title>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript">
		function doAjax(url, callback)
		{
			var xhr = new XMLHttpRequest();
			xhr.onreadystatechange = function() {
				if(xhr.readyState === 4) {
					if(xhr.status === 200) {
						callback(xhr.responseText, url);
					} else {
						return false;
					}
				}
			};
			xhr.open('GET', url, true);
			xhr.send(null);
		}
	</script>
<head>
<body>
	<button onclick="doAjax('test2.html', function(responseText) { document.getElementById('my-div').innerHTML = responseText; });">Change content</button>
	<div id="my-div">Original content</div>
</body>
</body>

 

<button onclick="doAjax('test3.html', function(responseText) { document.getElementById('my-div').innerHTML = responseText; });">Change again</button>

 

success

Endret av JohndoeMAKT
Lenke til kommentar

Jeg skjønner ikke noe, jeg.

 

Etter å først ha lest gjennom en annen tråd du hadde tidligere i natt, kan jeg ikke forstå hvorfor du ikke bare bruker 'include' eller 'require' i PHP for å "sette sammen" siden, før den sendes til nettleseren..

 

Hvorfor bygge siden slik at den blir helt avhengig av JavaScript (som jo faktisk kanskje er på klientsiden...) for at det skal fungere?

 

Hva med de som ikke har støtte for / aktivert JavaScript? Og hva med søkemotorene som skal lese nettsiden din?

Lenke til kommentar

kan du ikke bare skrive document.getElementById("myDiv").innerHTML="nytt innhold" ?

Se linje 23, står der:P

 

Tre filer, henholdsvis test.html, test2.html og test3.html

 

<!DOCTYPE html>
<html>
<head>
	<title>Lorem ipsum dolor sit amet</title>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript">
		function doAjax(url, callback)
		{
			var xhr = new XMLHttpRequest();
			xhr.onreadystatechange = function() {
				if(xhr.readyState === 4) {
					if(xhr.status === 200) {
						callback(xhr.responseText, url);
					} else {
						return false;
					}
				}
			};
			xhr.open('GET', url, true);
			xhr.send(null);
		}
	</script>
<head>
<body>
	<button onclick="doAjax('test2.html', function(responseText) { document.getElementById('my-div').innerHTML = responseText; });">Change content</button>
	<div id="my-div">Original content</div>
</body>
</body>

 

<button onclick="doAjax('test3.html', function(responseText) { document.getElementById('my-div').innerHTML = responseText; });">Change again</button>

 

success

PERFEKT :D muchas gracias hombre!!

 

Jeg skjønner ikke noe, jeg.

 

Etter å først ha lest gjennom en annen tråd du hadde tidligere i natt, kan jeg ikke forstå hvorfor du ikke bare bruker 'include' eller 'require' i PHP for å "sette sammen" siden, før den sendes til nettleseren..

 

Hvorfor bygge siden slik at den blir helt avhengig av JavaScript (som jo faktisk kanskje er på klientsiden...) for at det skal fungere?

 

Hva med de som ikke har støtte for / aktivert JavaScript? Og hva med søkemotorene som skal lese nettsiden din?

Det har litt med funksjonaliteten jeg ønsker på siden min, og søkemotorproblemer er grunnen til at jeg begynnte med AJAX, for iframene mine og søemotorer ble ikke venner, og ajaxbiten skal være produktlister, noe som google ikke er mye glad i uansett. Men er ikke umulig at jeg bruker PHP, men har litt med hvordan jeg kan integrere det i loopene jeg bruker til produktlister. Jeg trenger å lære meg endel mer om caching FØRST. Jeg ser mine egne begrensinger, og jeg _prøver_ å ikke ta meg vann over hode for ofte, selv om jeg gjør det fra tid til annen, sånn som å prøve å unngå å måtte lære meg JavaScript bare for å bruk AJAX. De som ikke har støtte for Javascript, har enten sikkerhetsnivået på 'paranoid' eller bruker noe annet enn de fire største nettleserene. mEN SOM SAGT, EN 100% PHP løsning kan være framtiden, først vil jeg bare få dette unnagjort, sånn at jeg kan jobbe mer med helheten på mine web, og .net prosjekter.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...