2017-06-09 24 views
0

フラスコフォームのフィールドデータを使用してjquery ajaxリクエストを送信しようとしています。私は現在、動作するようなものを得ることができます...フォームデータをajaxリクエストとして私のpythonコードに送ります。JQuery ajaxを使用してFlaskFormデータを取得する方法

HTML

<form id=test_form name="form_name"> 
    <input type="text" name="form_text"> 
    <input type="submit" value="Submit"> 
</form> 

ジャバスクリプト

$(function() { 
    $('form#test_form').bind('submit', function() { 
    $.getJSON('/_ard_connect', { 
     var1: $('input[name="form_text"]').val() 
    }, function(data) { 
     $("#some_result").text(data.result); 
    }); 
    return false; 
    }); 
}); 

パイソン

@app.route('/_test_link') 
def test_link(): 
    var1 = request.args.get('var1') 
    answer = doSomething(var1) 
    return jsonify(result=answer) 

IはFlaskFを定義する場合このようなORM:

class MyForm(FlaskForm): 
    test_form = StringField(label='tt') 

myform = MyForm() 

は私のgetJSON関数にvar1: $('{{ myform.test_form.data }} ').val()のようなものを合格することが可能です。

代替(?)

私はAJAXを抽象化するJavaScriptと引数

<form id=test_form action="javascript: somefunc('{{ ardu.port.data }}')"> 

としてフォームデータを渡すことも疲れてきましたが、それは唯一のデフォルト値を取得します...

答えて

0

ケース1:

あなたはjavascrでこれを行うことはできませんiptファイル。私はあなたがアクションURLを更新するためにやっていると思う

:代わりに、ビューのテンプレートファイル(HTML)

file.html

var1: $('{{ myform.test_form.data }} ').val() 

ケース2をレンダリングすることを行うことができますいくつかのjavascript関数に基づいていますが、これも間違っています。このsomefuncはonloadで自分自身を実行できません。代わりにwindow.onloadメソッドを試して、を更新してください。test_form URL

関連する問題