kostenloser Webspace werbefrei: lima-city


Das & Zeichen in Text bei JavaScript POST data

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mywebchat

    mywebchat hat kostenlosen Webspace.

    Hallo

    folgendes Problem:

    ich sende per jQuery ein POST an eine .php Datei um einen Text zu speichern

    function SaveText(string,page) { 
    	
    	var mlsec = new Date().getTime();
    	var dataString = 'text='+ string+"&seite=" + page + "&mlsec=" + mlsec;
    
    		$.ajax({
    			type: "POST",
    			url: "post_text.php",
    			data: dataString,
    			cache: false,
    			success: function(inhalt){
    				$("#eingabe").val('');
    				$("#content").html(inhalt);
    				}
    		});
    
    }


    das funktioniert soweit auch

    Aber wenn ich im Text (Variable: string) ein
    &
    Zeichen habe
    dann kommt in der .php Datei nur der Text bis zu diesem & Zeichen an,
    und der Rest vom Text fehlt ....

    wohl deshalb, weil im dataString dadurch eine neue POST Variable erstellt wird
    aber soll ja nicht ..... wie kann ich das verhindern, bzw. wie & als String übergeben
    so dass der Text nicht ab dem & Zeichen abgeschnitten wird ... escapen? wie?


  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Filter den Text mit
    encodeURIComponent()
    und häng das bei der URL an, statt dem Text direkt ;-)
  4. Autor dieses Themas

    mywebchat

    mywebchat hat kostenlosen Webspace.

    ok, das funktioniert schonmal, danke !

    Jetzt habe ich noch ein weiteres Problem ...
    ... und zwar Prüfung ob der Eingabe-Text (string) nicht "leer" ist
    wobei auch bei Eingabe von nur Leerzeichen oder nur Zeilenumbruch (Enter)
    auch als "leer" gelten soll.

    bisher habe ich es nur so:

    if(string == '') {
    	alert('Bitte einen Text eingeben');
    }
    else {
    	string = encodeURIComponent(string); 
    	// --- hier der Ajax Post Request ----
    }


    aber wenn User-Eingabe nur Leerzeichen oder nur Enter-Taste (neue Zeile) ist,
    dann kommt bisher auch nicht der alert() sondern es wird gesendet.

    ich bräuchte da wohl sowas wie von PHP trim() um Leerzeichen und Zeilenumbruch
    am Anfang (und am Ende) des String zu entfernen

    Alternativ ginge evtl. auch nur Senden wenn String mindestens n=3 Zeichen hat
    aber auch da wäre es blöd, wenn User 3x Leerzeichen eingibt und senden will.

    EDIT ... ok .. habe jQuery
    $.trim(str)
    gefunden
    string = $.trim(string); 
    if (string.length < 3) { 
    	alert('Bitte einen Text mit mind. 3 Zeichen eingeben');
    }
    else {
    	string = encodeURIComponent(string); 
    	// --- hier der Ajax Post Request ----
    }


    das klaptt soweit .... denke ich :)


    Beitrag zuletzt geändert: 12.11.2013 13:20:50 von mywebchat
  5. 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!