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

次のように異なる変数名を使用していた場合:

...
<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);
}

すべての checkBoxes の結果が得られます。

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 に答える