Javascript/AJAX - Inhalt von mehreren divs nachladen

  • #1
C

Ciryx

Bekanntes Mitglied
Themenersteller
Dabei seit
07.01.2004
Beiträge
135
Reaktionspunkte
0
Ort
Zürich
Hallo zusammen.

Ich bin zur Zeit gerade etwas mit AJAX am rumspielen. Leider bin ich noch neu in diesem Umfeld ;)

Ich habe folgendes php file:

Code:
<html>
<head>
<script type='text/javascript' src='./ajax2.js'></script>
</head>
<body>
<table>
<?php
[...]
if (mysql_num_rows($result)) 
{
	$load_data=array();
	while ($row = mysql_fetch_array($result)) 
	{
		echo <tr><td>;
		echo <div id=\div_.$row['id'].\>;		
		echo </div>;
		echo </td><td>;
		echo Some other row content;
		echo </td></tr>;
		array_push($load_data,$row['id']);		
	}
}

echo <script type=\text/javascript\>\n;
foreach ($load_data as $id) 
 echo blah(.$id.);\n;
echo </script>\n;
?>

<body>
</head>
</html>

Ich fülle also den load_data array mit den id's (ca 200 Einträge). Am schluss führe ich die javascript Funktion (blah()) also ca. 200 Mal aus.

Ajax File mit Funktion blah():
Code:
function erzXMLHttpRequestObject(){
 var resOb = null;
 try {
  resOb = new ActiveXObject(Microsoft.XMLHTTP);
 }
 catch(Error){
  try {
   resOb = new ActiveXObject(MSXML2.XMLHTTP);
  }
  catch(Error){
   try {
   resOb = new XMLHttpRequest();
   }
   catch(Error){
    alert(Erzeugung des XMLHttpRequest-Objekts nicht möglich);
   }
  }
 }
 return resOb;
}


function blah(div_id)
{
	var handleResponse = function ()
	{
		if(resOb.readyState == 4)
		{			
			var new_content = resOb.responseText;
			document.getElementById(div_ + div_id).innerHTML = new_content;						
		}
		else
		{
			var HTML = <img src='ajax-loader.gif' height='16' width='16'>;
			document.getElementById(div_ + div_id).innerHTML = HTML;			
		}		
	}	
	
	resOb.open('get',->file.php?div_id='+ data, true);
	resOb.onreadystatechange = handleResponse;
	resOb.send(null);		
}

resOb = erzXMLHttpRequestObject();

Mein problem ist nun, dass lediglich beim letzten div der Inhalt geladen wird. Wahrscheinlich, weill ich immer das gleiche resOb verwende. Wie kann ich das besser machen?

Hat hier jemand eine Idee und kann mir weiterhelfen?

Danke
 
  • #2
Ok habe es selber gelöst.

Änderungen im ajax File:
Code:
function AJAX()
{
	try
	{
		xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
		return xmlHttp;
	}
	catch (e)
	{
		try
		{
			xmlHttp=new ActiveXObject(Msxml2.XMLHTTP); // Internet Explorer
			return xmlHttp;
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject(Microsoft.XMLHTTP);
				return xmlHttp;
			}
			catch (e)
			{
				alert(Your browser does not support AJAX.);
				return false;
			}
		}
	}
}

function blah(div_id)
{	
	id[data]=AJAX();	
	
	var handleResponse = function ()
	{
		if(id[data].readyState == 4)
		{			
			var new_content = id[data].responseText;
			document.getElementById(div_ + div_id).innerHTML = new_content;			
		}
		else
		{
			var HTML = <img src='ajax-loader.gif' height='16' width='16'>;
			document.getElementById(div_ + div_id).innerHTML = HTML;			
		}		
	}		
	
	id[data].open('get',->file.php?div_id='+ div_id, true);
	id[data].onreadystatechange = handleResponse;
	id[data].send(null);	
	
}

var id=new Array();
 
Thema:

Javascript/AJAX - Inhalt von mehreren divs nachladen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben