0

フォームが JQuery リクエストによって送信されたら、Python スクリプト内でいくつかのフォーム フィールドを取得しようとしています。私が使用しているコードは次のとおりです。

スニペット。

<title>Line Chart</title>
            <script>
                    function clickme() {
                    drawgraph();
                    }
            </script>
            <script>
                    ajaxResponse = ".";
            </script>
            <script src="Chart.js"></script>
            <script src="jquery.js"></script>
            <script>
                    function drawgraph() {
                            function handleResponse(response) {
                                    ajaxResponse = response;
                            }
                            draw(handleResponse);
                    };

                    function draw(handleResponse) {
                            $.ajax({
                            url: "/currentcost.py",
                            data: $("form[name='frm']").serialize(),
                            success: function(response){
                                    handleResponse(response);
                            }
                            });
            }
            </script>
            <script>
                    function alertbox() {
                            alert(ajaxResponse);
                    }
            </script>
            <script>

frm という私のフォームには、dt と tm という 2 つの選択ボックスがあります。

呼び出される Python スクリプトは次のとおりです。

import MySQLdb
import cgi, cgitb
import os
fmeError: global name 'environ' is not defined
from cgi import parse_qs, escape

def index(req):

    # Returns a dictionary containing lists as values.
    d = parse_qs(os.environ['QUERY_STRING'])

    # In this idiom you must issue a list containing a default value.
    dtbox = d.get('dt', [''])[0] 
    tmbox = d.get('tm', [''])[0] 

dtbox変数には dt と tm の 2 つのフォーム ボックスの内容が含まれていることを期待していますtmboxが、実際には次のように設定されています。None

JavaScript に次の行を追加すると:Type: "POST"

Python スクリプトが異常終了し、「501 (メソッドが実装されていません)」というエラーが返されます。

夢のように機能する 2 つの select ステートメントでコメント タグを入れ替えるかのように、これらの変数が返される場合、スクリプトが機能することはわかっています。

どこが間違っているのか誰か教えてください。

4

0 に答える 0