C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: PHPでのチェックボックスの値の受け取り


(過去ログ 83 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■49111 / inTopicNo.1)  PHPでのチェックボックスの値の受け取り
  
□投稿者/ けい (1回)-(2010/04/22(Thu) 16:41:47)

分類:[その他の言語] 

こんにちは。いつもお世話になっております。
現在メールフォームをPHPで作成しているのですが、hiddenでのチェックボックス(複数選択可能)の値の渡し方、取得の仕方が判りません。

■contact.html(入力フォーム画面)
<input type="checkbox" name="kibou[]" value="りんご">りんご
<input type="checkbox" name="kibou[]" value="なし">なし
<input type="checkbox" name="kibou[]" value="みかん">みかん

■kakunin.php(入力確認画面)
<?php $kibou = $_POST['kibou'];
foreach ($kibou as $key => $value){
print $value ."/";
}
?>

↓ここの処理が動作しておらず、値が受け取れない状態です。
<input type="hidden" name="kibou[]" value="<?php print $kibou[] ?>">

■complete.php(メール送信完了画面)
ここでのチェックボックスの値の受け取り方も判りません。

処理は、値を受け取り後、受け取ったチェックボックスのデータをmb_send_mailで送ります。


ちなみに複数選択可能のこのチェックボックスは、1つも選択されない場合もあり、選択されなかった場合は、「選択されていません」という文字列が、変数に入って値受け渡しするようにしたいです。

お手数ですが、ご教授お願いします。
引用返信 編集キー/
■49123 / inTopicNo.2)  Re[1]: PHPでのチェックボックスの値の受け取り
□投稿者/ もりお (213回)-(2010/04/23(Fri) 07:03:48)
No49111 (けい さん) に返信

> hiddenでのチェックボックス(複数選択可能)の値の渡し方、取得の仕方が判りません。

serialize して base64_encode して出力してはいかがでしょうか。

[kakunin.php]
// 配列を serialize して文字列に変換して
$serializedKibou = serialize($kibou);

// base64 でエンコードして
$base64EncodedKibou = base64_encode($serializedKibou);

// 出力してはいかがでしょうか。
<input type="hidden" name="kibou" value="<?php print $base64EncodedKibou ?>" />

復元する際には逆の処理をすると善いかと思います。

[complete.php]
// base64 でデコードして
$serializedKibou = base64_decode($_POST["kibou"]);

// 文字列を unserialize して配列を復元出来るかと思います。
$kibou = unserialize($serializedKibou);

引用返信 編集キー/
■49126 / inTopicNo.3)  Re[2]: PHPでのチェックボックスの値の受け取り
□投稿者/ けい (2回)-(2010/04/23(Fri) 09:45:32)
No49123 (もりお さん) に返信
> ■No49111 (けい さん) に返信
>
>>hiddenでのチェックボックス(複数選択可能)の値の渡し方、取得の仕方が判りません。
>
> serialize して base64_encode して出力してはいかがでしょうか。
>
> [kakunin.php]
> // 配列を serialize して文字列に変換して
> $serializedKibou = serialize($kibou);
>
> // base64 でエンコードして
> $base64EncodedKibou = base64_encode($serializedKibou);
>
> // 出力してはいかがでしょうか。
> <input type="hidden" name="kibou" value="<?php print $base64EncodedKibou ?>" />
>
> 復元する際には逆の処理をすると善いかと思います。
>
> [complete.php]
> // base64 でデコードして
> $serializedKibou = base64_decode($_POST["kibou"]);
>
> // 文字列を unserialize して配列を復元出来るかと思います。
> $kibou = unserialize($serializedKibou);

もりおさん、有難うございます。
初心者な質問だと思うのですが、

お陰様で、complete.phpにて、$kibouの配列に値渡しは完了しました。

次に、配列の値をメールにて送るのですが、

$message = "名前:" . $name . "\nフリガナ:" . $furigana . "\n希望:" . $kibou;

にすると、当然最後に配列に入ったデータしか受け取らないのですが、どうすれば、選択した全ての配列のデータを$messageに入れれるでしょうか?
foreachで繰り返すにしても文字列連結?なのか仕方が分からないのです。

お手数ですが、どのように記述したら良いのかご教授お願いします。
引用返信 編集キー/
■49128 / inTopicNo.4)  Re[3]: PHPでのチェックボックスの値の受け取り
□投稿者/ けい (4回)-(2010/04/23(Fri) 10:10:37)
> 次に、配列の値をメールにて送るのですが、
>
> $message = "名前:" . $name . "\nフリガナ:" . $furigana . "\n希望:" . $kibou;
>
> にすると、当然最後に配列に入ったデータしか受け取らないのですが、どうすれば、選択した全ての配列のデータを$messageに入れれるでしょうか?
> foreachで繰り返すにしても文字列連結?なのか仕方が分からないのです。
>
> お手数ですが、どのように記述したら良いのかご教授お願いします。


すみません。自己解決出来ました。

値を受け取った後に、

//配列のデータを結合する
$check = join( '/', $kibou );

で出来ました。joinを知らなかったので昨日から調べるのにも苦労しましたが。

質問に答えてくださり、有難うございました。
また機会ありましたら、宜しくお願い致します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -