从div访问父html页面

时间:2012-05-31 17:33:27

标签: javascript python html cgi

我有一个简单的HTML页面,上面有隐藏字段。我显示一个DIV,其上有一个按钮供用户点击 - 当他们这样做时,我想更新主页上的隐藏字段。

目前,我在我的主HTML(在CGI文件中)中有这个:

print "<td><input type=\"hidden\" id=\"mailUpdate\"></td></tr>";

我有这个(在一个javascript模块中,通过onClick访问div中的按钮):

var updMail = document.getElementById("mailUpdate");
updMail.value = 1;

但是当我尝试用这个读取它(在与上面相同的CGI文件中)时:

formData = cgi.FieldStorage()
doUpd = formData.getvalue("mailUpdate")
if (doUpd == 1):
    print "Maint button - doing update"

'doUpd'永远不会得到任何价值。

希望这有意义 - 任何想法?

2 个答案:

答案 0 :(得分:1)

您在表达式(doUpd == 1):中发出谎言您正在将doUpd(字符串)与整数1进行比较。这将始终为False。更改为(doUpd == '1'):可以解决您的问题。

此外,您需要将name添加到输入中,以便它会遇到表单。

print "<input type=\"hidden\" id=\"mailUpdate\" name=\"mailUpdate\"></td></tr>"

答案 1 :(得分:0)

在不了解CGI的情况下,看起来您正在将服务器端代码与客户端事件混合在一起。更好地检查隐藏值将是添加如下所示的行:

var updMail = document.getElementById("mailUpdate");
updMail.value = 1;
alert(document.getElementById("mailUpdate").value);

如果您没有在服务器端收到该值,可能是因为您的输入字段未包含在<form>元素中,然后http消息需要是表单提交,而不是简单的导航调用

或者尝试这个以验证实际存在的值:

formData = cgi.FieldStorage()
doUpd = formData.getvalue("mailUpdate")
print doUpd