1

我有一个包含一些复选框的表单(使用 HtmlService)。当它被提交时,它应该通过电子邮件发送内容。一切都适用于复选框值的豁免。仅发送第一个复选框值。我究竟做错了什么?我在下面添加了一个示例代码。任何帮助表示赞赏。

<form name=“some-form” action="<?= appUrl ?>" method="post”&gt;
<input type=“hidden” name=“form_name” value=“send_form”&gt;
<label>Your Name</label>
<input type=“text” name=“name”&gt;
<label>Your Email</label>
<input type=“text” name=“email”&gt;
<label>Favorite Colors</label>
<input type=“checkbox” name=“favorite_colors” value=“blue”&gt;Blue<br/>
<input type=“checkbox” name=“favorite_colors” value=“red”&gt;Red<br/>
<input type=“checkbox” name=“favorite_colors” value=“yellow”&gt;Yellow<br/>
<input type=“checkbox” name=“favorite_colors” value=“green”&gt;Green<br/>

<input type=“submit” value=“Send Form”&gt;

</form>



// post function

function doPost(e)
{

    var evaluated = undefined;

    //check if right form and call send function
    if(e.parameter.form_name == “send_form”)
    {

        evaluated = sendForm(e)

    }

   return evaluated;

}


// send function

function sendForm(e)
{

    // data from form
    var name = e.parameter.name;
    var email = e.parameter.email;
    var favorite_colors = e.parameter.favorite_colors;


    // create and send message
    var to = “some-email@gmail.com”;
    var subject = “New form response”;
    var body = “A new form was completed” +
           “Name: “ + name +
           “Email: “ + email +
                   “Favorite Colors: “ + email;


    MailApp.SendEmail(to, subject, body);

}
4

2 回答 2

0

我相信您输入的值都设置为相同的值:

<input type=“checkbox” name=“favorite_colors” value=“blue”&gt;Blue<br/>
<input type=“checkbox” name=“favorite_colors” value=“blue”&gt;Red<br/>

应该返回蓝色,蓝色。

尝试设置它们以匹配您期望的结果:

<input type=“checkbox” name=“favorite_colors” value=“blue”&gt;Blue<br/>
<input type=“checkbox” name=“favorite_colors” value=“red”&gt;Red<br/>
于 2013-10-31T12:14:54.410 回答
0

如果您使用不同的 var 名称,如下所示:

...
<label>Favorite Colors</label><br>
<input type='checkbox' name='favorite_colors1' value='blue'>Blue<br/>
<input type='checkbox' name='favorite_colors2' value='red'>Red<br/>
<input type='checkbox' name='favorite_colors3' value='yellow'>Yellow<br/>
<input type='checkbox' name='favorite_colors4' value='green'>Green<br/>
...

在代码中:

function sendForm(e){
  var name = e.parameter.name;
  var email = e.parameter.email;
  var favorite_colors1 = e.parameter.favorite_colors1;
  var favorite_colors2 = e.parameter.favorite_colors2;
  var favorite_colors3 = e.parameter.favorite_colors3;
  var favorite_colors4 = e.parameter.favorite_colors4;
  var dest = 'xxxx@gmail.com';
  var subject = 'New form response';
  var body = 'A new form was completed \n' +
    'Name: ' + name +
      '\nEmail: ' + email +
        '\nFavorite Colors: \n' + favorite_colors1
        +'\n'+favorite_colors2
        +'\n'+favorite_colors3
        +'\n'+favorite_colors4
    MailApp.sendEmail(dest, subject, body);
}

你会得到所有的复选框结果。

test with all 4 checked :
    A new form was completed
    Name: name test
    Email: @@@@@
    Favorite Colors:
    blue
    red
    yellow
    green 
于 2013-10-31T13:21:56.803 回答