Einzelnen Beitrag anzeigen
Alt 12.03.10, 12:57   #10 (permalink)
BasicAvid
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Ich zeig Dir mal schnell wie ich solche Ajax-Requests mit Prototype abschicke.

HTML-Code:
<form onsubmit="return false;" action="deine_seite.php" method="post" id="deine_form_id">
<!--
Deine Input-Felder usw.
-->

<input type="submit" name="save" id="save" />
</form>

<script type="text/javascript" language="javascript">

$('save').observe('click', saveData);

    function saveData(event) {
        new Ajax.Request('deine_seite.php',
        {
            method: 'get',
            parameters: $('deine_form_id').serialize(),
            onSuccess: handleResponse
        });
    }

    function handleResponse(response) {
        if (!response.responseText.isJSON()) {
            $('updateErrors').innerHTML = "";
            $('updateErrors').innerHTML = "<p class='success'>"+response.responseText+"</p>";
            $('updateErrors').style.display = "block";
            return;
        }

        var data = response.responseText.evalJSON();

        var error = "<p class='error'>";

        if (typeof(data) == 'object') {
            for (var item in data) {
                error += data[item] + "<br />";
            }
        } else {
            for (var i = 0; i < data.length; i++) {
                error += data[i] + "<br />";
            }
        }
        error += "</p>";
        $('updateErrors').innerHTML = error;
        $('updateErrors').style.display = "block";
    }
</script>
Das schöne daran, Du musst nicht die ganzen Daten manuell angeben, sondern serialisierst das ganze mit $('deine_form_id').serialize(). Somit kannste Deine Form, ohne dass Du die JS-Funktionen erweitern musst, um weitere Felder erweitern.

Die handleResponse-Methode dient bei mir dazu, Meldungen über den Status auszugeben, das können Error-,Warning-& Success-Messages sein.

Serverseitig darfst Du natürlich nur das zurück geben was Du ausgeben willst.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61