AJAX - Umlaut Problem beim speichern von Formularfeldern
Hallo,
ich nutze folgendes Script um Daten aus einem Formular in einer MySQL Datenbank zu speichern ohne die Seite neu zu laden, allerdings gehen nach dem aktualisieren der Seite die Umlaute verloren bzw, werde durch ö ä ü usw.. ersetzt... hat dazu evtl. jemand eine Lösung?
Hier das Script
Das Formular:
Und letztlich das SQL Kommando
Evtl. hat ja jemand eine Lösung, ich bin am verzweifeln...
ich nutze folgendes Script um Daten aus einem Formular in einer MySQL Datenbank zu speichern ohne die Seite neu zu laden, allerdings gehen nach dem aktualisieren der Seite die Umlaute verloren bzw, werde durch ö ä ü usw.. ersetzt... hat dazu evtl. jemand eine Lösung?
Hier das Script
<script type='text/javascript'>
<!--
var req;
function sendRequest(formdata) {
try {
req = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {
alert('kein ajax');
}
req.onreadystatechange = handleResponse;
req.open('post', 'module/kontakt/func.php');
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(formdata);
return false;
}
function handleResponse() {
if ((req.readyState == 4) && (req.status == 200)) {
alert(req.responseText);
}
}
//-->
</script>
Das Formular:
<form method='post' onsubmit=\"return sendRequest('wert1='+this.wert1.value+'&wert2='+this.wert2.value);\">
...
Und letztlich das SQL Kommando
$sql = sprintf("UPDATE `$dbtable` SET `WERT1` = '%s' WHERE `WERT` = '$wert' LIMIT 1 ; ", $_POST['wert1']);
$sql = sprintf("UPDATE `$dbtable` SET `WERT2` = '%s' WHERE `WERT` = '$wert' LIMIT 1 ; ", $_POST['wert2']);
Evtl. hat ja jemand eine Lösung, ich bin am verzweifeln...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96225
Url: https://administrator.de/contentid/96225
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Arbeite selbst mit Ajax (genaugenommen mit der Sajax.php), die Sache mit Javascript und der kodierung ist mir daher geläufig.
Ich kenne zwar deine Seiten- und Datenbankdcodierung nicht, tippe aber auf UTF-8.
Schau dir mal ein Script an, dass sich Webtoolkit.utf8.js nennt.
http://www.webtoolkit.info/javascript-utf8.html
Bei mir ist die Ausgabe folgendermaßen geregelt:
"new_data" enthält Daten, die bei der Ausgabe aussehen, wie von dir beschrieben, weil schon "falsch" abgespeichert.
Das Element "Ausgabe" ist ein Bereich: <div id="ausgabe"></div>.
Hoffe ich konnte helfen, viel Erfolg!
Ich kenne zwar deine Seiten- und Datenbankdcodierung nicht, tippe aber auf UTF-8.
Schau dir mal ein Script an, dass sich Webtoolkit.utf8.js nennt.
http://www.webtoolkit.info/javascript-utf8.html
Bei mir ist die Ausgabe folgendermaßen geregelt:
"new_data" enthält Daten, die bei der Ausgabe aussehen, wie von dir beschrieben, weil schon "falsch" abgespeichert.
Das Element "Ausgabe" ist ein Bereich: <div id="ausgabe"></div>.
document.getElementById('ausgabe').innerHTML = Utf8.decode(new_data);
Hoffe ich konnte helfen, viel Erfolg!
Ich glaube das Problem hatte ich auch.
Gelöst habe ich es, dass ich in der PHP-Datei den übertragenen String noch mal mit utf8_decode() "bearbeitet" habe.
~Arano
Gelöst habe ich es, dass ich in der PHP-Datei den übertragenen String noch mal mit utf8_decode() "bearbeitet" habe.
~Arano
Am einfachsten mit der onsubmit option im form-tag.
Du könntest natürlich auch ein alert-Event zurückgeben lassen, sobald die Datenspeicherung abgearbeitet ist (sofern du das mit dem Ajax abarbeiten willst).
Schau dir mal die sajax Sache an, in den Beispielen findest du einen Lösungsansatz dazu.
http://www.modernmethod.com/sajax/
Übrigens mit einer kleinen Modifikation voll UTF-8 tauglich
Du könntest natürlich auch ein alert-Event zurückgeben lassen, sobald die Datenspeicherung abgearbeitet ist (sofern du das mit dem Ajax abarbeiten willst).
Schau dir mal die sajax Sache an, in den Beispielen findest du einen Lösungsansatz dazu.
http://www.modernmethod.com/sajax/
Übrigens mit einer kleinen Modifikation voll UTF-8 tauglich