2009-07-06 12 views
1
$('.textedit').editable('/challenge/skeleton/textedit/textedit/process', { 
    loadurl: '/challenge/skeleton/textedit/textedit/loadraw', 
    loaddata: {id: $(this).attr('id'), client: $(this).data('client')}, 
    submitdata: {id: $(this).attr('id'), client: $(this).data('client')}, 
    .... 
}); 

$('#textedit_footer').data('client', 5); 
$('#textedit_home1').data('client', null); 
$('#textedit_test').data('client', 3); 
$('#textedit_userCreate').data('client', null); 

Mein Problem liegt bei den GET-Daten gesendet wird. Die ID-Daten werden entsprechend gesendet, die Client-Daten jedoch nicht. Ich denke, ich benutze Daten() falsch, kann aber nicht darauf hinweisen. Irgendwelche Vorschläge? Oder irgendwelche Vorschläge, wie man das besser macht? Hier ist ein Beispiel für eine der Divs:Edit-in-Place-Problem beim Senden von GET-Daten

<div class="textedit" id="textedit_home1"> 
<p>test</p> 
</div> 

Alle .textedit Elemente sind Edit-in-Place-Funktionen. Wenn die Daten gesendet werden (in submitdata und loaddata angegeben), sollten zwei Datenpakete an den Server gesendet werden, damit dieser sie verarbeiten kann: Die erste ist die ID der Edit-in-Place, die als ID gespeichert wird des Elements (dieser Teil funktioniert). Das zweite Stück Daten nenne ich den "Client". Die einzige Art und Weise, wie ich an den Browser denken kann, um zu wissen, welche Elemente welcher Client hat, ist über Daten(). Aber aus irgendeinem Grund funktioniert meine Implementierung nicht. Die 'Client'-Daten werden einfach nicht gesendet, das ist falsch.

+0

tun können, was Sie zu tun versuchen? Was ist das erwartete Ergebnis? – Tomalak

+0

Alle .textedit-Elemente sind "Edit-in-Place" -Features. Wenn die Daten gesendet werden (in submitdata und loaddata angegeben), sollten zwei Datenpakete an den Server gesendet werden, damit dieser sie verarbeiten kann: Die erste ist die ID der Edit-in-Place, die als ID gespeichert wird des Elements (dieser Teil funktioniert). Das zweite Stück Daten nenne ich den "Client". Die einzige Art und Weise, wie ich an den Browser denken kann, um zu wissen, welche Elemente welcher Client hat, ist über Daten(). Aber aus irgendeinem Grund funktioniert meine Implementierung nicht. Die 'Client'-Daten werden einfach nicht gesendet, das ist falsch. – Jonah

+0

Aber die "# textedit_home1" -Daten sind null - was erwarten Sie gesendet werden? – Tomalak

Antwort

1

überarbeitete Antwort ...

Beim Erstellen der Schließung der Wert null ist, wenn Sie es einrichten passieren später ist es nicht die submitdata xhr Ruf gefährden, da diese Daten bereits in Ermangelung eines ‚geschlossenen‘ worden besseres Wort. Die Daten ("Client") werden zum Zeitpunkt des Versands nicht ausgewertet.

aktualisieren

im Plugin Suchen Sie somehting wie diese

$(".editable").editable("http://www.example.com/save.php";, { 
    submitdata : getData 
}); 

function getData(){ 
     return {id: $(this).attr('id'), client: $(this).data('client')} 
} 
+0

Das macht keinen Sinn für mich, aber ich werde es versuchen ... Weil ich dachte, loaddata und loadurl ausgeführt werden nur wenn benötigt, das ist, wenn die Edit-in-Place geklickt wird ... – Jonah

+0

Nein, zuerst die Daten einstellen und dann den editierbaren() Teil des Codes schreiben macht keinen Unterschied ... gehe ich das richtig? – Jonah

+0

Keine Ahnung, ich müsste wirklich debuggen, kannst du deine Seite live stellen. Wenn nicht, bist du mit Firebug vertraut? Sie könnten Haltepunkte in Ihre js setzen und durchgehen, was das Plugin tut und herausfinden, warum die Werte nicht gesendet werden. – redsquare

Verwandte Themen