Frankiiii: AJAX Problem mit Sonderzeichen

Hallo ich habe ein Problem.
Ein Skript holt mir alle Datenbankeinträge die anfangen wie ein bestimmter String:

  
  
/*  
* Request erzeugen  
*/  
function getReq(){  
	var req = null;  
	try{  
		req = new XMLHttpRequest();  
	} catch (ms){  
		try{  
			req = new ActiveXObject("Msxml2.XMLHTTP");  
		} catch (nonms){  
			try{  
				req = new ActiveXObject("Microsoft.XMLHTTP");  
			} catch (failed){  
				req = null;  
			}  
		}  
	}  
	if (req == null) alert("Error creating request object!");  
	return req;  
}  
  
function showText(e){  
	if(e.length >= 2){  
		var req = getReq();  
		req.open("POST", "text/getText/" + e, true);  
		req.onreadystatechange = function(){  
			switch(req.readyState) {  
				case 4:  
					if(req.status!=200) {  
						alert("Fehler:"+req.status);  
					}else{  
						document.getElementById("thetext").innerHTML=req.responseText				return true;  
					}  
				break;  
				default:  
					return false;  
				break;  
			}  
		};  
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
		req.send(null);  
	}  
}  
  

Der Aufruf erfolgt dann über:

  
<input type='text' onkeyup=\"showText(this.value)\" id='Category' />  
<ul id='text'></ul>

text.php:

  
public function getText($textid){  
$sql="SELECT text FROM texte WHERE text LIKE '".$textid."%' LIMIT 10";  
		$result=mysql_query($sql);  
		return $result;  
}  

So in etwa sieht das ganze aus. Nur es tritt ein Fehler auf sobald ich ein Sonderzeichen verwende: ä,ö,ü,ß, , ....

Woran liegt das?

Gruß, Frankiiii

  1. Hi,

    So in etwa sieht das ganze aus. Nur es tritt ein Fehler auf sobald ich ein Sonderzeichen verwende: ä,ö,ü,ß, , ....

    Woran liegt das?

    Am fehlerhaften Umgang mit der Zeichenkodierung. (Übrigens keinesfalls ein neues Problem, mal gesucht?)

    Die Behandlung des Wertes mit encodeURIComponent sollte helfen.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi.

      Die Behandlung des Wertes mit encodeURIComponent sollte helfen.

      Sorry vergessn zu erwähnen:
      "/text/getText/" + encodeURIComponent(e)

      und
      encodeURIComponent("/text/getText/" + e)

      Habe ich schon probiert!
      Es klappt nicht.. es wird mit X mal fehler 404 angezeigt.