15

私はjQueryがあまり得意ではありませんが、サイトにjEditableプラグインを使用することにしました。見た目が良く、目的を解決したからです。しかし、私は今、少し混乱しています。

このプラグインを使用してデータを編集すると、編集されたデータが DB に送信され、一部のフィールドが更新されます。これらのフィールドを更新するストアド プロシージャは、一部のデータを返しています。このデータを返してもらいたいです。最初に「アラート」ステートメントで返されたデータを確認したいだけで、そこから取得できます。

このプラグインのコールバック メソッドには、値と設定だけがあります。

このプラグインの使用中にサーバー側からデータを取得する方法はありますか?

4

6 に答える 6

14

私は自分のサイトでこれを正確に行いました。これで始められるはずです。

$("#editable_text").editable(submitEdit, { 
            indicator : "Saving...",
            tooltip   : "Click to edit...",
            name : "Editable.FieldName",
            id   : "elementid",
            type : "text",
});
function submitEdit(value, settings)
{ 
   var edits = new Object();
   var origvalue = this.revert;
   var textbox = this;
   var result = value;
   edits[settings.name] = [value];
   var returned = $.ajax({
           url: "http://URLTOPOSTTO", 
           type: "POST",
           data : edits,
           dataType : "json",
           complete : function (xhr, textStatus) 
           {
               var response =  $.secureEvalJSON(xhr.responseText);
               if (response.Message != "") 
               {
                   alert(Message);
               } 
           }
           });
   return(result);
 }

次の形式の Json 応答を返す必要があります。

{ "メッセージ" = "FOO" }

そして、それがアラートに表示されます。

于 2009-06-22T22:36:12.833 に答える
9

私もこの問題を解決しようと従来の ASP で作業してきましたが、私のような他の人もここにたどり着く可能性があると考えました。従来の ASP でこの問題を解決した方法を次に示します。

サーバーの検証に失敗しました... whatever.aspからの応答

<%
response.status "406 Not Acceptable"
response.write "error message here"
response.end
%>

whatever.aspが送信したエラー メッセージは からアクセスできonerror:、フィールドは元の値にリセットされます。

$("#editable_text").editable("whatever.asp", { 
    indicator : "Saving...",
    tooltip   : "Click to edit...",
    type : "text",
    onerror: function (settings, original, xhr) {
        original.reset();
        //do whatever you want with the error msg here
        alert(xhr.responseText);
    }     
});

(値がサーバーの検証に合格した場合は、更新された値が何であれ、response.write だけです)

于 2010-07-18T18:36:07.130 に答える
2

中国のユーザーはこのブログを見ることができます: http://wxianfeng.com/2009/10/14/rails-in-place-edit-with-jquery

于 2009-11-06T03:06:10.903 に答える
0

ドキュメントによると、「コールバック」関数の最初のパラメーターは「値」です。

'callback': function (value, settings) {
...

ドキュメントに記載されていないことは、ここでの「値」はサーバーが書き出すものであるということです。生の値に限定されません。JSON でエンコードされた構造を送り返すため、コールバック関数の最初の行は次のようになります。

var updateInfo = JSON.parse(value);

次に、updateInfo 構造体から必要に応じてフィールドを取得します。

于 2016-08-03T15:35:08.117 に答える
0

jEditable は jquery ajax メソッドのラッパーのようです。すべての jEditable 呼び出しを、jquery のネイティブ ajax メソッドを使用する呼び出しに置き換えることはそれほど難しくありません。

「callback」という名前の jEditable のコールバックを、jquery の ajax 関数のコールバックの名前である「success」に置き換えることができます。

于 2009-06-08T21:06:30.623 に答える