私はWebプログラミングに慣れていないので、素朴な質問を許してください。Webで検索しようとしましたが、基本的な質問に対する答えが見つかりませんでした。
サーバー側でextjs(ウィジェットとajax用)とpython(ボトル用)を使用しています。
これが私の要件です。
1つの列(編集可能)しかないextjsEditorGridがあります。インデックスルート(ボトルルート)で、このグリッドに入力されて表示されるjsonディクショナリを返します。これまでのところ、この列の値を更新し、更新された値をサーバー側に保存します。
そのため、Pythonスクリプトに別のルートを追加し、JavaScriptのajaxリクエストにURLとしてajax_replyを追加しました(以下のコード)。
今私の質問は、クライアントに応答を送信する方法です。たとえば、クライアントに失敗を送信したい(つまり、サーバーで更新が成功せず、更新が失敗したajax応答を送信したい。私のajax_replyルートですが、常に成功はクライアントで呼び出されます。
ajax_repose関数からjson応答を送信し、それに応じて動作するようにjavascriptの成功または失敗関数で再度解析する方法がわかりません。
どんな助けでも大いに活用されます
@bottle.route('/ajax_reply', method='POST')
def update_column():
return { 'success' : False }
var grid = new Ext.grid.EditorGridPanel({
tbar: [{ text : 'Remove' }, {text : 'Add'}],
ds: ds,
frame:true,
listeners: {
afteredit : function(e){
Ext.Ajax.request({
url : '/ajax_reply',
params : {
action: 'update',
id : e.record.id,
field: e.field,
value : e.value
},
success : function(resp, opt){
e.record.commit();
Ext.Msg.alert('SUCCESS', 'success...');
},
failure: function(resp, opt){
Ext.Msg.alert('ERROR', 'error...');
e.record.reject();
}
});
}
},