我有一个PHP脚本,它有一个带有两个输入字段的表单。我的页面需要将这两个输入值传递回我的Python CGI script
(calculate.py),当用户单击submit按钮时,检索结果并将其打印回我的输入字段下面的同一个PHP页面(而不刷新页面)
我尝试对脚本进行简单的表单操作调用,但它们将我带到了一个新页面,即打开我自己的脚本。然后我读到的答案是,对于动态页面更新,JS&;需要使用AJAX,因此在我的PHP文件中根据这些准则创建了一个名为python_process()
的JS函数
但是,当我当前单击“提交”时,输入字段下方不会显示任何内容
我也尝试过通过查看开发人员控制台来调试它,但是那里什么也没有出现
这是我的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的变量,并尝试使用form访问它的值
此外,这个问题有助于回答我的div值不更新
Update div with jQuery ajax response html
相关问题 更多 >
编程相关推荐