kostenloser Webspace werbefrei: lima-city


form ruft neue Seite auf beim ausführen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    So ich mal wieder mit einem tag/problem">Problem.

    Ich habe ein form-Tag das ich über GM_xmlhttpRequest einlese und in einem Overlay-DIV ausgebe.
    Das läuft auch ohne Probleme und das Form-Tag wird auf Klick auch ausgeführt. Das Problem ist das beim ausführen immer die Seite, die im „action“ steht aufgerufen wird. Ich würde das Ganze nun gern so gestalten, das auf Klick das Form ausgeführt wird und nur ein Seitenreload durchgeführt wird.

    Ich versuche es mal zu beschreiben:
    So ist es derzeit,
    User ruft auf Seite A das form im Overlay-Div auf und führt es aus, dadurch wird er auf Seite B geleitet.

    So soll es sein,
    User ruft auf Seite A das form im Overlay-Div auf und führt es aus, er bleibt auf Seite A.

    Hier mal der Code vom form-tag:
    <form method="post" action="/city/washhouse/buy/">
    <input class="formbutton" name="submitForm" value="Für €25,00 kaufen" type="submit">
    </form>



    Hier mal sicherheitshalber noch der vollständige Code, falls nötig. Bitte Greasmonkey abschalten um den Code zu sehen.
    www.pennereck.de/gm_scripte/homebase_new_edition.user.js

    Hoffe mal man versteht mein Problem.

  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.

    Lösung deines Problems: du legst bei deinem Form einen
    onsubmit
    -Eventhandler fest, der
    1. die Form per AJAX verarbeitet und
    2.
    false
    zurückgibt.

    Dann wird die Seite gar nicht neu geladen, aber die Aktion trotzdem ausgeführt (solange JavaScript aktiviert ist, aber da es um GreaseMonkey geht ist dieser Hinweis wohl unnötig).
  4. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Ich hab mich mal "begoogelt" und einiges Probiert, klappen tut natürlich nix.
    Bevor ich nun weiter in diese Richtung probiere Frage ich mal lieber nach, ist das der richtige Ansatz?
    Ich vermute fast nein.

    Ich habe zum testen folgendes Form verwendet:
    <form id="essen_form" method="post" onsubmit="sendForm(); return false;">
    <input id="drink_Brot" type="submit" value="Essen" title="xxxx"/>
    <input type="hidden" name="item" value="Brot">
    <input id="Brot" type="hidden" value="-0.35" />
    <input type="hidden" name="promille" value="-35" />
    <input type="hidden" name="id" value="2" />
    <input id="menge_Brot" type="text" size="2" name="menge" value="8" onKeyUp="generateWirkung(3);" />
    </form>


    Dazu kommt folgende Funktion:
    function sendForm(){
        
            var form = $('#essen_form');  
            var data = form.serialize();  
            $.post('/stock/foodstuffs/use/', data, function(response) {  
                alert(response);  
            });  
            return false;  
        
        
    }



    Füge ich in das Form-Tag das action attribut ein wird auch gesendet, allerdings halt wieder auf einer neuen Seite.
    (action="/stock/foodstuffs/use/")
    Die Funktion selber scheint garnicht angesprochen zu werden.

    Ich vermute mal ich bin total auf dem Holzweg und das was ich da mache ist der total Quatsch. (versuch macht klug )
  5. Du kannst wie bereits gesagt auch AJAX verwenden oder du kannst auch die Seite selbst nochmal laden, das wird in PHP öfters mit folgendem Code realisiert:

    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">


    POST/GET ist egal...

    und dann prüfst du ob du variablen beim aufruf hast und kannst diese dann verarbeiten...
  6. 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!