嵌入式CGI开发之旅——11

时间:2021-11-15 08:49:49
【原创】嵌入式CGI开发之旅——11

实验六、复选框组

复选框是一种多选框,一次可以选择多个选项,复选框组是多个复选框拥有同一个name属性。

1、修改mycgictest.html,增加一组复选框按钮组,增加到刚才的单选框组下面:

<p>

    <label>

      <input type="checkbox" name="复选框组1" value="a" id="复选框组1_0" />

      A</label>

    <br />

    <label>

      <input type="checkbox" name="复选框组1" value="b" id="复选框组1_1" />

      B</label>

 

2、修改mycgictest.c文件:

同样首先增加复选框所有选项的数组:

    char *user_multiplecheckbox[]={"a","b"};

    int user_multiplecheckbox_result[2]={0,0};

    int invalid_multiplecheckbox;

……………

if(cgiFormCheckboxMultiple("multiplebox",user_multiplecheckbox,2,user_multiplecheckbox_result,&invalid_multiplecheckbox)==cgiFormSuccess){

       for(i=0;i<2;i++){

           if(user_multiplecheckbox_result[i]){

                  fprintf(cgiOut,"你选择了:%s/n",user_multiplecheckbox[i]);

           }  

       }

    }

这个实验中利用函数 cgiFormCheckboxMultiple() 处理多选框组,通过逐一检查用户是否选择了相应的多选框来判断用户的选择并输出用户的选择。关于 cgiFormCheckboxMultiple() 的具体说明请参照本人写的 CGIC 手册。注意在程序中用 cgiOut 输出时,其输出字符串中的换行符:“ /n ”在 HTML 页面中是没办法显示出来的,也就是说你看不到页面上的换行,但是如果你查看源文件的话可以看到在源文件中换行是正常的,所以如果想在页面中实现换行的话可以使用 HTML 标签: <pre></pre> 或者使用列表来进行输出。还要注意一点就是指针和数组在使用之前最后进行一下初始化,不然很容易出现程序执行时出现某某内存不能读或写的错误。