kostenloser Webspace werbefrei: lima-city


Wieder ein Problem mit Ajax

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    dikay

    dikay hat kostenlosen Webspace.

    Also langsam verzweifle ich jetzt nun. Sorry an Trueweb, doch ich brauch wirklich Hilfe da ich mittlwerweile 15 Stunden an dem selben Script gesessen habe :eek:
    Hier das Script:
    <script language="Javascript">
    function setRequest() {
    	if (window.XMLHttpRequest) {
    		request = new XMLHttpRequest();
    	} else if (window.ActiveXObject) {
    		try {
    			request = new ActiveXObject('Msxml2.XMLHTTP');
    		} catch (e) {
    			try {
    				request = new ActiveXObject('Microsoft.XMLHTTP');
    			} catch (e) {}
    		}
    	}
    	if (!request) {
    		alert("Kann keine XMLHTTP-Instanz erzeugen");
    		return false;
    	} else {
    		var url = "test.php";
    		request.open('get', url, true);
    		request.send(null);
    		request.onreadystatechange = interpretRequest;
    	}
    }
    
    
    function interpretRequest() {
    			if (request.readyState ==4 && request.status != 200) {
    				alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
    			} else {
    				var content = request.responseText;
    var tf=new Array(content);
    
    type_text(tf); 
    			}
    	}
    
    	var speed=30;
    	var index=0; text_pos=0;
    
    	var contents, row;
    
    	function type_text(tl)
    	{	var tf=tl;
    var str_length=tl[0].length;
    	  contents='';
    	  row=Math.max(0,index-9);
    	  while(row<index)
    		contents += tl[row++] + '\r\n';
    	  document.forms[0].elements[0].value = contents + tl[index].substring(0,text_pos) + "_";
    	  if(text_pos++==str_length)
    	  {
    		text_pos=0;
    		index++;
    		if(index!=tl.length)
    		{
    		  str_length=tl[index].length;
    		  setTimeout("type_text(tl)",800);
    		}
    	  } else
    		setTimeout("type_text(tl)",speed);
    	}
    </script>
    
    	<form><textarea rows=10 cols=60></textarea></form>
    
    	<script language="Javascript">setRequest();</script>


    Ich bitte euch mal über dieses Script zu schauen. Ich habe nun folgendes Problem.
    Es wird nix geschrieben bzw. das _ wird als einziges geschrieben.
    Hat jmd. ne Idee????
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also ich hab mir mal die mühe gemacht den code durchzusehen & zu testen.
    Hier ist meine (vielleicht ein bischen unsaubere) lösung deines problems:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    	<title>Unbenannt</title>
    </head>
    
    <body>
    <script language="Javascript">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    	<title>Unbenannt</title>
    </head>
    
    <body>
    <script language="Javascript">
    function setRequest() {
    	if (window.XMLHttpRequest) {
    		request = new XMLHttpRequest();
    	} else if (window.ActiveXObject) {
    		try {
    			request = new ActiveXObject('Msxml2.XMLHTTP');
    		} catch (e) {
    			try {
    				request = new ActiveXObject('Microsoft.XMLHTTP');
    			} catch (e) {}
    		}
    	}
    	if (!request) {
    		alert("Kann keine XMLHTTP-Instanz erzeugen");
    		return false;
    	} else {
    		var url = "http://dikay.lima-city.de/ajax/test.php";
    		request.open('get', url, true);
    		request.send(null);
    		request.onreadystatechange = interpretRequest;
    	}
    }
    
    
    function interpretRequest() {
    			if (request.readyState ==4 && request.status != 200) {
    				alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
    			} else {
    				var content = request.responseText;
    tl[0]=content;
    type_text(tl); 
    			}
    	}
    
    	
    	tl=new Array('blablup')
    	var speed=30;
    	var index=0; text_pos=0;
    
    	var contents, row;
    
    	function type_text(tl)
    	{	//var tf=tl;
    var str_length=tl[0].length;
    	  contents='';
    	  row=Math.max(0,index-9);
    	  while(row<index)
    		contents += tl[row++] + '\r\n';
    	  document.forms[0].elements[0].value = contents + tl[index].substring(0,text_pos) + "_";
    	  if(text_pos++==str_length)
    	  {
    		text_pos=0;
    		index++;
    		if(index!=tl.length)
    		{
    		  str_length=tl[index].length;
    		  setTimeout("type_text(tl)",800);
    		}
    	  } else
    		setTimeout("type_text(tl)",speed);
    	}
    </script>
    
    	<form><textarea rows=10 cols=60></textarea></form>
    
    	<script language="Javascript">setRequest();</script>
    
    
    </body>
    </html>


    Guck mal was ich mit den Arrays tf und tl gemacht habe.
    Die url musst du eventuell wieder ändern. (url=test.php)
    tf=tl hat ja wohl nie einen sinn gehabt oder?
  4. Autor dieses Themas

    dikay

    dikay hat kostenlosen Webspace.

    Hmm also ich habe mir das Script von dir kopiert und noch paar Fehler behoben jedoch funktioniert das Script doch immer noch nicht oder bin zu Doof zum abkopieren??
  5. was für "fehler " hast du denn behoben?

    edit: ajah hab ich mir ja schon gedacht :biggrin:

    Hab mal auf deine Seite geguckt ([url]]http://dikay.lima-city.de/ajax//[/url])

    Also bitte diesen "Fehler" beibehalten:
    tl=new array();
    statt
    var tl=new array();


    Warum?
    Du solltest wissen das nicht automatisch alle variablen die Außerhalb einer Funktion deklariert wurden auch innerhalb der Funktion zur Verfügung stehen.

    ohne var tun sie das aber.

    Beschäftige Dich mal mal mit den speziellen Eigenschaften von Funktionen ;-)
    Soviel zu meinen Fehlern :lol::lol:

    P.s. kopier den Code doch mal 1 zu 1 ohne "Korrekturen", falls das nicht läuft sag mir mal mit welchen Browser(n) du testest.

    Beitrag zuletzt geändert: 21.2.2009 20:19:51 von simuliertes
  6. Autor dieses Themas

    dikay

    dikay hat kostenlosen Webspace.

    Hmm also jetzt hackt es bei mir wirklich ich habe es 1 zu 1 eins übernommen und habe dennoch nur einen _ da stehen (Pls editier mal dein Script ist oben 2mal der Anfang der Seite drinne)

    Habe Firefox 3.0.6 -.-

    EDIT:
    Mit Internet Explorer funktioniert das.. wieso das??

    Hmm nocheinmal editieren:

    Also mit IExplorer funktioniert dein Script genau 1mal danach geht nix mehr.

    Beitrag zuletzt geändert: 23.2.2009 15:13:02 von dikay
  7. mmmhh okeyy
    also der Lauftext ist jedenfalls nicht das Problem wie man hier sieht:
    tl=new Array();
    	var speed=30;
    	var index=0; text_pos=0;
    
    	var contents, row;
    
    	function type_text(tl)
    	{	
    
    var str_length=tl[0].length;
    	  contents='';
    	  row=Math.max(0,index-9);
    	  while(row<index)
    		contents += tl[row++] + '\r\n';
    	  document.forms[0].elements[0].value = contents + tl[index].substring(0,text_pos) + "_";
    	  if(text_pos++==str_length)
    	  {
    		text_pos=0;
    		index++;
    		if(index!=tl.length)
    		{
    		  str_length=tl[index].length;
    		  setTimeout("type_text(tl)",800);
    		}
    	  } else
    		setTimeout("type_text(tl)",speed);
    	}
    </script>
    
    	<form><textarea rows="10" cols="60"></textarea></form>
    
    	<script language="Javascript">tl=['hallo du'];type_text(tl);;</script>


    also muss es am ajax hapern.
    Hau mal ein alert(content) da rein um zu überprüfen ob ff da was bekommt...

    } else {
    var content = request.responseText;
    alert(content);
    tl[0]=content;


    ich vermute grad mal das es am falschen Format deiner test.php liegt & ff da ein bisschen intoleranter ist als ie

    für alle ajax-experten:
    http://dikay.lima-city.de/ajax/test.php
    kann man das so machen?
  8. Autor dieses Themas

    dikay

    dikay hat kostenlosen Webspace.

    Ich bedanke mich an allen die sich daran gesessen haben, ich habe es nun raus... mein Finaler CODE:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    	<title>Dialogbot!</title>
    </head>
    
    <body>
    <script language="Javascript">
    function setRequest() {
    	if (window.XMLHttpRequest) {
    		request = new XMLHttpRequest();
    	} else if (window.ActiveXObject) {
    		try {
    			request = new ActiveXObject('Msxml2.XMLHTTP');
    		} catch (e) {
    			try {
    				request = new ActiveXObject('Microsoft.XMLHTTP');
    			} catch (e) {}
    		}
    	}
    	if (!request) {
    		alert("Kann keine XMLHTTP-Instanz erzeugen");
    		return false;
    	} else {
    		var url = "http://dikay.lima-city.de/ajax/bot.php";
    		request.open('get', url, true);
    		request.send(null);
    		request.onreadystatechange = interpretRequest;
    	}
    }
    
    
    function interpretRequest() {
    			if(request.readyState ==4){if ( request.status == 200) {
    				var content = request.responseText;
                                    tl[0]=content;
                                    type_text(tl);
    			} else {
    				 alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
    			}}
    	}
    
    	
    	tl=new Array('blablup');
    	var speed=30;
    	var index=0; text_pos=0;
    
    	var contents, row;
    
    	function type_text(tl)
    	{	//var tf=tl;
    var str_length=tl[0].length;
    	  contents='';
    	  row=Math.max(0,index-9);
    	  while(row<index)
    		contents += tl[row++] + '\r\n';
    	  document.forms[0].elements[0].value = contents + tl[index].substring(0,text_pos) + "_";
    	  if(text_pos++==str_length)
    	  {
    		text_pos=0;
    		index++;
    		if(index!=tl.length)
    		{
    		  str_length=tl[index].length;
    		  setTimeout("type_text(tl)",800);
    		}
    	  } else
    		setTimeout("type_text(tl)",speed);
    	}
    </script>
    
    	<form><textarea rows=10 cols=60></textarea></form>
    
    	<script language="Javascript">setRequest();</script>
    
    
    </body>
    </html>


    Beitrag zuletzt geändert: 23.2.2009 16:12:21 von dikay
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!