• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Umlaute umwandeln

Status
Für weitere Antworten geschlossen.

yss

Mitglied
Hey Leute,
ich habe ein Formular, welches mit JavaScript ausgelesen, gefiltert und an ein Php-Script weitergegen wird um es dann in eine Datenbank zu speichern. Das ganze funktioniert ganz gut, bis auf die Umlaute.
Nun habe ich mir eine Funktion geschrieben, welche die eingaben als string durchsucht und die Umlaute ersetzt, doch funktionieren tut es nicht. Die Fehlerkonsole schlägt nicht an.
Hier der Code:
HTML:
function installVoting(){
	var frage;
	var a1;
	var a2;
	var a3;
	var cfrage;
	var ca1;
	var ca2;
	var ca3;
	
	frage = prompt('Bitte geben Sie die Frage ein:');
	a1 = prompt('Bitte geben Sie die erste Antwortmöglichkeit ein:');
	a2 = prompt('Bitte geben Sie die zweite Antwortmöglichkeit ein:');
	a3 = prompt('Bitte geben Sie die dritte Antwortmöglichkeit ein:');
	
	cfrage = convertText(frage);
	ca1 = convertText(a1);
	ca2 = convertText(a2);
	ca3 = convertText(a3);
	
	alert(cfrage);
	alert(ca1);
	alert(ca2);
	alert(ca3);
	
	document.getElementById('phpframe').src = 'php/sendNewVoting.php?frage='+cfrage+'&a1='+ca1+'&a2='+ca2+'&a3='+ca3;
	
}

function convertText(text){
	var tmpstr = '';
	
	for(i=0; i<text.lenght; i++){
		switch(text.charAt(i)){
			case 'ä': tmpstr += '&auml;'; break;
			case 'Ä': tmpstr += '&Auml;'; break;
			case 'ü': tmpstr += '&uuml;'; break;
			case 'Ü': tmpstr += '&Uuml;'; break;
			case 'ö': tmpstr += '&ouml;'; break;
			case 'Ö': tmpstr += '&Ouml;'; break;
			case 'ß': tmpstr += '&szlig;'; break;
			default: tmpstr += text.charAt(i); break;
		}
	}
	return tmpstr;
}
 
Edit: Zum Sinngehalt dieses Posts siehe #7 und #8.

JavaScript ist eigentlich nicht der geeignete Ort für solcherlei Umwandlungen. Zum Beispiel auch, weil es im Browser des Besuchers deaktiviert sein könnte. Das sollte auf Serverseite (PHP) erledigt werden.

Was genau funktioniert denn bei den Umlauten nicht?
 
Zuletzt bearbeitet:
Achte darauf, dass Du auszugebende Texte in JavaScript im selben Zeichensatz speicherst den die Webseite verwendet. Dann gibt es auch keine Probleme.
 
und der Fehler an sich ist nur ein blöder Tippfehler (der öfters vorkommt). Aber die Funktion ist nicht empfehlenswert, weder technisch noch wird sie das tun was du erwartest. Denn wenn der Zeichensatz falsch ist, findet auch das JS nicht die falschen Umlaute.
 
Oh, ja, sorry. Ich habe nicht genau genug gelesen und mich von den Entities auf die falsche Fährte locken lassen und auf "Standardantwortmodus" geschaltet. Um die Werte per GET (also über die URL) in das PHP-Script hineinzubekommen, müssen sie so kodiert werden, dass sie eine gültige URI ergeben (siehe struppis Link). Entitäten (ä => &auml;) ersetzen bringt da nichts.

Das Zeichensatzproblem kommt dann vielleicht noch im PHP-Script. Mal abwarten. :)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben