スレッド表示 | フラット表示〕 全トピック 920 件中 602 番目 次≫ ≪前

配列からの抽出ができません。(長文です)

created: 2004-05-29 16:12 | modified: 2004-05-31 13:00 | reply: 5

[1625] 配列からの抽出ができません。(長文です)

user: あらりっく | created: 2004-05-29 16:12
初めて投稿します。
フォームからの受け取ったデータをメールで配信するプログラムをつくっています。
チェックボックスのところの情報がとれません。
表示は可能なのですが・・・。
どなたか良い知恵をお願い致します。
ソースは以下の通りです。
<?php
$TIME=$_POST['TIME'];
$koko=$_POST['koko'];
$name=$_POST['name'];
$mail=$_POST['mail'];
$address=$_POST['address'];
$tel=$_POST['tel'];
$A1[0]=$_POST['A1_a'];
$A1[1]=$_POST['A1_b'];
$A1[2]=$_POST['A1_c'];
$A2=$_POST['A2'];
$A3=$_POST['A3'];
$A4=$_POST['A4'];
$A5[0]=$_POST['A5a'];
$A5[1]=$_POST['A5b'];
$A5[2]=$_POST['A5c'];
$A5[3]=$_POST['A5d'];
$A5[4]=$_POST['A5e'];
$A5[5]=$_POST['A5f'];
$A5c[0]=$_POST['A5_cc'];
$A5c[1]=$_POST['A5_oc'];
$A6=$_POST['A6'];
$A6a1=$_POST['A6_a1'];
$A6a2=$_POST['A6_a2'];
$A6b1=$_POST['A6_b1'];
$A6b2=$_POST['A6_b2'];
$A7=$_POST['A7'];
?>
<?php for ($i=0;$i<3;$i++){
switch($A1[$i]){
case "true": $Q1[$i]="Q1_choice [$i]";
echo "Q1_choice [$i] <BR>";
break;
case "false": $Q1[$i]="0";
break;
}
}
echo "Q2_choice $A2<BR>Q3_choice $A3<BR>Q4_choice $A4<BR>";
for ($j=0;$j<6;$j++){
switch($A5[$j]){
case "true": $Q5[$j]="Q5_choice [$j]";
echo "Q5_choice [$j] <BR>";
break;
case "false": $Q5[$j]="0";
break;
}
}
if($A5[4]=="true"){
echo "子供 $A5c[0] 人<BR>";
}else{echo " ";}
if($A5[5]=="true"){
echo"その他 $A5c[1] 人<BR>";
}else{echo " ";}
echo "Q6_choice $A6<BR>";

if($A6=="a"){
echo "$A6a1 に $A6a2 坪<BR>";
$answer6="$A6a1 に $A6a2 坪";
}else{
echo " $A6b1 方面に $A6b2 坪<BR>";
$answer6=" $A6b1 方面に $A6b2 坪";}
echo "Q7_Answer $A7<BR>";
natsort($Q1);
natsort($Q5);
?>
<?php $title="資料請求をありがとうございました";

$headers="";
$headers.="Content-Type: text/plain; charset=ISO-2022-JP\n";
$headers.="Content-Transfer-Encoding: 7bit";
$sumai="";
$ans="";
$ans.="とりあえずおくってみる。";
$data="";
$data.="請求日=$TIME \n";
$data.="請求資料=$koko \n";
$data.="お名前=$name \n";
$data.="メルアド=$mail \n";
$data.="住所=$address \n";
$data.="電話=$tel \n";
$data.="\n";
$data.="Q2_choice $A2 \n";
$data.="Q3_choice $A3 \n";
$data.="Q4_choice $A4 \n";
$data.="\n";
$data.="子供 $A5c[0]人\n";
$data.="その他 $A5c[1]人\n";
$data.="Q6_choice $A6 \n";
$data.="$answer6 \n";
$data.="Q7_ANS $A7\n";
mb_language("Japanese");

mb_send_mail($sumai,$ans,$data,$headers);
?>
長文申し訳ありません。
reply: 1626 返信 編集 削除

[1626] 書き足りないことがありました。

user: あらりっく | created: 2004-05-29 16:18
すみませんかきたりないことがありました。
チェックボックスの判定は$Q1と$Q5で行っています。
ここの配列の中身が0以外のものをメールで送りたいということです。
よろしくお願いします。
Parent: 1625  reply: 1627 返信 編集 削除

[1627] チェックボックスの値獲得

user: ゆうじ | created: 2004-05-29 19:43
こんばんは。

問題点が絞れてる時は、
簡単なコードに直しましましょう。
以下のコードでテストしてみました。

<?php
$A1 = array();
$A1[0]=$_POST['A1_a'];
$A1[1]=$_POST['A1_b'];
$A1[2]=$_POST['A1_c'];

// チェック1
echo '$A1の値';
var_dump($A1);
echo '<hr>';

$Q1 = array();
for ($i=0;$i<3;$i++){
switch($A1[$i]){
case "true":
$Q1[$i]="Q1_choice [$i]";
echo "Q1_choice [$i] <BR>";
break;
case "false":
$Q1[$i]="0";
break;
}
}

// チェック2
echo '<hr>';
echo '$Q1の値';
var_dump($Q1);
?>

チェックボックスからの値は、
チェックがある物だけが、
value に指定した値が返ってくるので、

case "true":
case "false":

では判定できないでしょう。
やるならこれ。

case true:
case false:


でもこの場合、値があるか否かを判定すれば良いだけなので、
swhitch文は適切でないかも。
値があるものだけ獲得できれば良いようですので
ループの中身はこちらの方が良いと思います。

for ($i=0;$i<3;$i++){
if(isset($A1[$i])){
$Q1[$i]="Q1_choice $A1[$i]";
echo "Q1_choice $A1[$i] <BR>";
}
}
Parent: 1626  reply: 1628 返信 編集 削除

[1628] ありがとうございます。しかし・・・.

user: あらりっく | created: 2004-05-31 10:03
ゆうじさん
ありがとうございました。こちらのほうがすっきりしてますね。

でも表示は前のやつでもできるのですが、メールにて確認をしたいときはどうしたら良いのでしょうか?そのまま
data.="Q1_choice $A1 \n";
mb_send_mail($toadd,$title,$data,$hedder);
だとQ1_choice Array
と表示されます。
これだとなにを選択したのか分からないので困っています。質問したい内容はじつはこちらだったのです・・・。
本当に申し訳ありませんが御教授願えませんか?
文章校正能力がなくて申し訳ありません。
当方PHPを初めて半年なもので単純なところが抜けている可能性が高いです。
一応書籍等で調べたのですが・・・・。
よろしくお願い致します。
Parent: 1627  reply: 1629 返信 編集 削除

[1629] 配列の中身

user: ゆうじ | created: 2004-05-31 11:01
配列の中身(値)を全て取り出したいたいのでしたら、
先の処理で使った $Q1 を
foeeachループ を使ってこんな具合で良いのでは。

foreach($Q1 as $val) {
data .= "$val\n";
}
Parent: 1628  reply: 1630 返信 編集 削除

[1630] ありがとございました。

user: あらりっく | created: 2004-05-31 13:00
ゆうじさん、本当にありがとうございました。おかげでようやくできました。
Parent: 1629  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 602 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑