Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Sonderzeichen bei Ajax (prototype)...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Sonderzeichen bei Ajax (prototype)...

    Hallo,
    ich habe Probleme mitteln js per AJAX Zeichen zu übergeben. ich benutzte prototy und möchte mittels Ajax.Updater einfach eine Variable an eine bestimmte Datei üergeben und dann die Werte in einer bestimmten DivBox ausgeben. Man soll hier nicht den Sinn hinterfragen. Es geht lediglich darum, dass ich keine Sonderzeichen übergeben kann.
    Hier meine Index.html:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html>
    <head>
    <title>Ajax Testseite</title>
    <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
    <script src="myscripts/prototype.js" type="text/javascript"></script>
    <script src="myscripts/scriptaculous.js" type="text/javascript"></script>
    <script type="text/javascript">
    function sendupdater() {
    var params = 'beschreibung=' + $('beschreibungid').value;
    //var url = 'doit.php';
    //var myvar = new Ajax.Updater('testboxjs', 'doit.php');
    var myajax = new Ajax.Updater("textboxjs", "doit.php", {parameters : params});
    }
    </script>

    </head>

    <body bgcolor="#E9F5FE">
    Hier werden wir eine AJAX Umgebung testen:<br /><br />
    <input type="text" name="beschreibung" id="beschreibungid" /><br /><br />
    <input type="reset" name="senden" value="Abschicken" onclick="sendupdater();" /><br /><br />
    javascript direkt:<br />
    <div id="textboxjs"></div>
    <br /><br />
    durch php gelaufen:<br />
    <div id="textboxphp"></div>

    </body>
    </html>

    Und hier die doit.php:
    <?php
    header("content-type: text/html; charset=utf-8");
    echo($_POST['beschreibung']);
    ?>


    Letztendlich soll man was in das INPUT Feld eintragen und auf den Button klicken. Der leitet den Value mittels AJAX an doit.php weiter. Dann soll der wert in der divbox "textboxjs" augegeben werden. Funktioniert soweit einwandfrei. Außer bei bestimmten Sonderzeichen:

    ein ": wird imme rmit einem backslash übergeben.
    ein #: hier wird alles nach dem # einfach abgeschnittten und nicht übermittelt.
    ein ?:bei einem ? wird nur der teil vor dem fragezeichenübermittelt.
    ein %: hier wird nix übermittelt.

    Woran liegt das?? ich habe schon bereits unter (http://www.php.de/datenbanken/46920-...ichenr-db.html) gepostet. Allerdings wurde hier versucht das Problem bei php zu suchen. Aber es liegt eindeutig an js. Die werte werden erst gar nicth korrekt übermittelt.

    Kann mir wer weiterhelfen??

    Hier ein Link als Beispiel: Ajax Testseite

    Danke
    go1denboy

  • #2
    Ich denke, dass die Lösung encodeURIComponent() heißt. Jetzt werden zumindest alle Werte korrekt angezeigt.

    Laut Firebug wird z.B. die Zeichenfolge: !"§$%&/()=? so übergeben: !"§$%&/()=?. Im FF wird es in meiner Divbox so angezeigt: !\"§$%&/()=?.

    Die Eingabe äöü wird so laut Firebug bergeben: äöü. Allerdings korrekt im Browser wieder angezeigt.

    Kommentar

    Lädt...
    X