通过CGI获取html提交按钮的名称

时间:2013-09-12 19:20:59

标签: c++ html cgi

我在CGI脚本中有两个提交按钮(用C ++编写)。一个(value=Submit)只保存表单数据。另一个(value=Save and Reboot)应该以相同的方式保存表单数据,然后重新启动。

基本上,我想这样做:

 if(method == "POST")
 {
   //element 1 saved

   //element 2 saved

   //etc etc

   if(second button is pushed)
     //handle reboot code
  }

但是我怎么知道推了哪个按钮?我看到了this question,但它是在php中。我正在使用C ++ CGI脚本。我一直在阅读CGICC documentation,但我找不到任何关于确定按下哪个按钮的内容。

要清楚,两个按钮基本上都会做同样的事情('POST'),但我需要能够识别按钮,以便我可以在必要时重新启动。

1 个答案:

答案 0 :(得分:1)

假设您有两个按钮,一个名为“提交”,另一个名为“保存并重新启动”:

<form method="POST" action="">
    <input type="submit" name="Submit" />
    <input type="submit"  name="Save and reboot" />
</form>

现在,只需检查POST数据中是否设置了具有相应名称的值:

form_iterator fsubmit = formData.getElement("Submit");
if( !fsubmit->isEmpty() && fsubmit != (*formData).end()) {
   // The sumbit is pressed
}

form_iterator fsaveandreboot = formData.getElement("Save and reboot");
if( !fsaveandreboot->isEmpty() && fsaveandreboot != (*formData).end()) {
   // The save and reboot is pressed
}

一旦您了解未点击的按钮将不包含在POST数据中,这很容易编写。