アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLのformからチェックボックスで選択された値をCGIに飛ばしデータファイル(cgiファイル)に保存したいのですが、
チェックボックスのvalueを複数選択するとvalue値の間にスペースが入ってしまいます。
正確にはデータファイルをterapadで開こうとすると、
「NULL文字を含むファイルです。NULL文字は半角スペースへ変換しました。」というアラートがでてvalue値の間に半角スペースが入ってしまいます。

<チェックボックスのHTML>
<input type="checkbox" name="■" value="jpn" />日本
<input type="checkbox" name="■" value="usa" />米国
■にはデータを保存する項目の番号が入っており、一つのチェックボックスでは同じ番号が入ります。
例えば■が1なら1番に保存されます。
日本と米国を選択し送信するとデータファイル上では「jpn usa」となってしまいます。

NULL文字とはデータの値がない場合に返される値だという認識なのですが、全てのチェックボックスを選択していれば、
「jpnusa」という形で送信されるものではないのでしょうか?

データを送信する際、このNULL文字による半角スペースをなくしたいのですが、何か方法はありますでしょうか?
やはりCGIファイルを編集しなければ不可能なのでしょうか?

ご教授よろしくお願いします。

A 回答 (1件)

>一つのチェックボックスでは同じ番号が入ります。


 意味が分かりません。radioではないのですから、ひとつのcheckboxには個別のnameが入ります。「一つに同じ」では、日本語として成立しません。
 複数のcheckboxに同じ名前のnameを持つことは出来ますが、其の場合は
use CGI;
&ReadParse(*in);
my @files = split(/\0/,$in{'files'});

として、\0でくぎって、改めてjoinなどで連結する。

それかcheckbokの名前を個別にして、
<input type="checkbox" name="■-01" value="jpn" />日本
<input type="checkbox" name="■-02" value="usa" />米国
として、頭に■がついているnameと値のセットからデータを作るとか・・

この回答への補足

>「一つに同じ」では、日本語として成立しません。
すいません。おかしな表現でした。
おっしゃる通り複数のcheckboxに同じ名前のnameです。

まずは教えていただいた方法を試してみます。

補足日時:2013/10/25 19:48
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/11/07 18:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!