dynamische StateChange Methode?

Kane_Kowalski

Grünschnabel
Hi,

gibt es eine Möglichkeit die StateChange Methode, mit derren Hilfe i.d.R. die Serverantworten in die HTML Elemente geschrieben werden, so zu verändern, dass als Übergabeparameter der gewünschte Elementname eingetragen wird und bei der Verarbeitung auch genau dieses Element verändert wird?

Hatte hier etwas ausprobiert, gingaber leider nach hinten los :mad:

Code:
...
		function stateChanged(div_block) { 
			 
			 
			if (xmlHttp.readyState==4){ 
			 
				document.getElementById(div_block).innerHTML=xmlHttp.responseText;
				 }
				else{alert("Fehler -"+div_block+" ->"+xmlHttp.readyState);}
			}

		function showCD(str)
			{ 
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			  {
			  alert ("Your browser does not support AJAX!");
			  return;
			  } 
			var url="database.php";
			xmlHttp.onreadystatechange=stateChanged("txtHint");
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			}	
		
		function showCD2(str)
			{ 
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			  {
			  alert ("Your browser does not support AJAX!");
			  return;
			  } 
			var url="database.php";
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			xmlHttp.onreadystatechange=stateChanged("txtHint2");
...

Kleine Erläuterung:

Die beiden Methoden ShowCD und ShowCD2 sind einfache funktionen, die Requests anfordern. Sobald "onreadystatechange" erreicht ist, wird die Methode StateChange aufgerufen. Als Übergabeparameter ist das entsprechende Div Element angegeben, welchen dann mit der Serverantwort gefüllt werden soll.

Hier noch meine beiden Testdateien:

1. index.html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script language="javaScript" type="text/javascript">
 		 var xmlHttp
						
	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;
			}
		
		
	function stateChanged2() { 
			 
			if (xmlHttp.readyState==4)
			{ 
			document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
			}
		else{alert("Fehler ->"+xmlHttp.readyState);}
}
		
			
			
			
		function stateChanged(div_block) { 
			 
			 
			if (xmlHttp.readyState==4){ 
			 
				document.getElementById(div_block).innerHTML=xmlHttp.responseText;
				 }
				else{alert("Fehler -"+div_block+" ->"+xmlHttp.readyState);}
			}
			
		function showCD(str)
			{ 
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			  {
			  alert ("Your browser does not support AJAX!");
			  return;
			  } 
			var url="database.php";
			xmlHttp.onreadystatechange=stateChanged("txtHint");
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			}	
		
		function showCD2(str)
			{ 
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			  {
			  alert ("Your browser does not support AJAX!");
			  return;
			  } 
			var url="database.php";
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			xmlHttp.onreadystatechange=stateChanged("txtHint2");
			
			
			}
		function showCD3(str)
			{ 
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			  {
			  alert ("Your browser does not support AJAX!");
			  return;
			  } 
			var url="database.php";
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			xmlHttp.onreadystatechange=stateChanged2;
			
			
			}
  </script>
  
</head>

<body>
Nr1<br>
<form> 
			Select a CD:
			<select name="cds" onchange="showCD(this.value)">
			<option value="">None</option>
			<option value="Chingy">Chingy</option>
			<option value="Powdy">Powdy</option>
			</select>
		</form>
		<br>El Diffo:
		<div id="txtHint"><b>CD info will be listed here.</b></div>
		
Nr1<br>
<form> 
			Select a CD:
			<select name="cds" onchange="showCD2(this.value)">
			<option value="">None</option>
			<option value="Chingy">Chingy</option>
			<option value="Powdy">Powdy</option>
			</select>
		</form>
		<br>El Diffo:
		<div id="txtHint2"><b>CD info will be listed here.</b></div>
		<br>
		
		<input type="button" value="klick too see 1" onclick="showCD(this.value)"/><br>
		<input type="button" value="klick too see 2" onclick="showCD2(this.value)"/><br>
		<input type="button" value="klick too see 3" onclick="showCD3()"/>
</body>
</html>

2. database.php
PHP:
<?

echo "<b>show it works</b> ";

?>
 

Neue Beiträge

Zurück