如何从html表单中的下拉框元素中获取所选项目的文本?(使用python)当我使用鼠标从下拉框中选择一个项目时,如何将值存储到变量?(即不使用提交按钮)
这是我在app引擎中执行的应用程序,它只支持Python.
您的问题显示了对Web应用程序如何工作的一些误解.
用户必须在浏览器中键入地址才能访问应用程序.这会向服务器发送请求.服务器代码(用python编写)接收此请求并有机会发送答案.答案是通常用HTML编写的文档.本文档的某些部分可以是动态的,即由python代码生成.文档的其他部分可以是静态的.然后,浏览器在用户窗口上呈现文档.
在那之后,你的python代码可以知道浏览器窗口上发生的事情或运行python代码的任何部分的唯一方法是让浏览器发送另一个请求.
在许多情况下都会发生这种情况,最常见的情况是:
用户点击指向另一个网址的链接,使浏览器向此新网址发送另一个请求.
用户单击submit
按钮,使浏览器将表单作为请求提交到表单action
属性中配置的地址.
实际页面中的一些代码,通常用ECMAscript(也称为javascript)编写,在引擎盖下提出请求.
后者就是你想要的.您必须在javascript中编写一些代码才能使浏览器将下拉的信息发送到服务器.这样你的服务器上的python代码可以做些什么.
这样做的简单方法是onchange
将下拉事件做为提交:
这样,当用户更改下拉列表中的值时,表单将被提交,就像用户单击提交一样.服务器上的Python代码将运行.浏览器将加载答案.
另一种流行的方法是使用javascript的XmlHTTPRequest DOM API发送请求.这样你就可以在python中收到值并发送一个答案,而答案又会被浏览器中的javascript代码接收.该代码可以根据答案更改页面的某些部分,而无需更改整个页面.这种技术称为AJAX.
如果你打算写很多javascript代码,我强烈建议至少使用javascript库来减轻处理许多浏览器版本的痛苦.jQuery是我的首选库.
换句话说,在浏览器中运行的javascript编写的代码与在服务器中运行的python编写的代码进行对话.