簡體   English   中英

無法解析來自 PHP 中 Python CGI 腳本的數據

[英]Unable to parse data from Python CGI script in PHP

我有一個 PHP 腳本,它有一個帶有兩個輸入字段的表單。 當用戶單擊提交按鈕時,我的頁面需要將這兩個輸入值傳遞回我的Python CGI script (calculate.py),檢索結果並將其打印回我的輸入字段下方的同一 PHP 頁面(不刷新頁面) .

我嘗試對腳本進行簡單的表單操作調用,但它們將我帶到了一個新頁面,即我自己的腳本打開。 然后,我閱讀了答案,說對於動態頁面更新,需要使用 JS 和 AJAX,因此根據這些指南在我的 Z2FEC392304A5C23AC138DA22847F9B7C 中創建了一個名為python_process()的 JS function。

但是,當我當前單擊提交時,我的輸入字段下方不會出現任何內容。

我也嘗試通過查看開發者控制台來調試它,但那里什么也沒有。

這是我的 PHP 代碼:

    <?php

    print "<html>";
    print "<script type=\"text/javascript\" src=\"http://code.jquery.com/jquery-1.4.4.min.js\"></script>";
    print "<script>
    function python_process() {
        var cancellationrate = $('input[name=cancellationrate]').val();
        var waitingtime = $('input[name=waitingtime]').val();
        $.ajax({
            url: \"/cgi-bin/calculate.py\",
            type: \"POST\",
            contentType: \"application/x-www-form-urlencoded\",
            data: {\"cancellationrate\" : cancellationrate, \"waitingtime\": waitingtime },
            success: function(response){
                        $(\"#result\").html(response);
                    }
            });
    };
    </script>";
    print "<link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\" integrity=\"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T\" crossorigin=\"anonymous\">
    ";
    print "<br/>";
    print "<div class=\"container\">";
                print "<form name=\"calculate\" id=\"calculate\" method=\"post\">";
                    print "<div class=\"form-group row\">";
                        print "<label for=\"cancellationrate\" class=\"col-sm-2 col-form-label\">Cancellation Rate</label>";
                        print "<div class=\"col-lg-10\">";
                            print "<input type=\"text\" style=\"width: 400px\" class=\"form-control\" name=\"cancellationrate\" id=\"cancellationrate\" placeholder=\"Expected % Change in Cancellation Rate\">";
                        print "</div>";
                    print "</div>";
                    print "<div class=\"form-group row\">";
                        print "<label for=\"waitingtime\" class=\"col-sm-2 col-form-label\">Waiting Time</label>";
                        print "<div class=\"col-lg-10\">";
                            print "<input type=\"text\" style=\"width: 400px\" class=\"form-control\" name=\"waitingtime\" id=\"waitingtime\" placeholder=\"Expected % Change in Waiting Time\">";
                        print "</div>";
                    print "</div>";
                    print "<center><button type=\"button\" onclick=\"python_process()\" class=\"btn btn-primary\">Submit</button></center>";
                print "</form>";
    print "</div>";

    print "<div id=\"result\"></div>";


    ?>

這是我的 calculate.py CGI 腳本:

#!/anaconda3/bin/python3

import cgi
print ("Content-type: text/html\n\n")

data = cgi.FieldStorage()

cancellation_rate =  int(form.getvalue('cancellationrate'))
waitingtime = int(form.getvalue('waitingtime'))

result = cancellation_rate * waitingtime

print(result)

原來這是我的 Python 腳本中的一個非常小的錯誤,我將 CGI 字段存儲定義為一個名為 data 的變量,並嘗試使用表單訪問它的值。

此外,這個問題有助於回答我的 div 值沒有更新!

使用 jQuery ajax 響應 html 更新 div

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM