Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] [jQuery] String mit Leerzeichen wird nicht verarbeitet

Einklappen

Neue Werbung 2019

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

  • [Erledigt] [jQuery] String mit Leerzeichen wird nicht verarbeitet

    Hi! Ich habe gerade meine ersten Gehversuche mit AJAX + JS bzw. mit jQuery mal neu in angriff genommen.

    Ich möchte gerne nahe zu in Echtzeit die eingabe in ein Textfeld via jQuery in die Session übernehmen.

    Folgendes habe ich:

    index.php
    PHP-Code:
    <?php
    session_start
    ();
    echo 
    '
    <html>
        <head>
            <script src="http://code.jquery.com/jquery-latest.min.js"></script>
            <script type="text/javascript" src="script.js"></script>
        </head>
        <body onload="setup();">
            <input id="session" name="'
    .session_name().'" type="hidden" value="'.session_id().'"/>
            <input id="text" name="text" type="text" value="'
    .$_SESSION['text'].'"/>
            <input id="button" name="button" type="button" value="Session L&ouml;schen"/>
            <p>'
    .$_SESSION['text'].'</p>
        </body>
    </html>
    '
    ;
    ?>
    script.js
    PHP-Code:
    function setup() {
        var 
    session document.getElementById('session');

        var 
    text document.getElementById('text');
        
    text.addEventListener(keyup,doThis,false);

        var 
    button document.getElementById('button');
        
    button.addEventListener('click',doThat,false);
    }
    function 
    doThis() {
        var 
    name this.name;
        var 
    value this.value;
        $(
    "p").load('input.php?'+name+'='+value+'&session='+session.value);
    }
    function 
    doThat() {
        $(
    "p").load('delete.php?session='+session.value);

    input.php
    PHP-Code:
    <?php
    session_start
    ($_GET['session']);
    foreach (
    $_GET as $key=>$value) {
        if     (
    $key != "session") {
        
    $_SESSION[$key] = $value;
        }
    }
    echo 
    $_SESSION['text'];
    ?>
    delete.php
    PHP-Code:
    <?php
    session_start
    ($_GET['session']);
    session_unset($_GET['session']);
    echo 
    $_SESSION['text'];
    ?>
    Funktioniert super... Aber immer wenn ich ein String mit einem Leerzeichen ausprobiere geht nix mehr.

    Kann mir jemand weiterhelfen, was ich tun muss um auch ganze Sätze mir mehreren Wörtern eintragen kann?

    Viele Grüße
    M

  • #2
    value sollte im Query-String (also in doThis) URL encodet werden. In JavaScript gibt es dazu die Funktion escape()
    [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
    [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

    Kommentar


    • #3
      Ich würde den Text, da er aus einer Textarea kommt eher mit POST übergeben. Weil dieser prinzipiell sehr lang werden kann.
      "My software never has bugs, it just develops random features."
      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

      Kommentar


      • #4
        PHP-Code:
        var value escape(this.value); 
        Funktioniert super! Danke!

        Kommentar

        Lädt...
        X