
月~金までそれぞれ4つずつ入力フォームがあり、データをCSVとして保存します。
これを曜日ごとの入力数でテーブルの表示も変更させたいです。
CSVにはmon1,mon2,mon3,mon4,tue1,tue2…としています。
月曜日に入力フォーム1に「ああ」、入力フォーム2に「いい」と入力し
火~金は入力フォーム1だけに入力します。
この場合月曜日が2行になり、他は「rowspan=2」で1行として表示させます。
月が1行、火が4行、水2行などとなった場合、月は「rowspan=4」、火は「rowspan=1」、水は「rowspan=2」「rowspan=2」になどしたいです。
自分では月~木が1行で金が2行のとき…月~水が1行で木が2行で金が3行とき…など
条件分岐させていましたが組み合わせがかなりありできませんでした。
あくまでも1つのデータは1つのセルに納めたいと思っています。
お分かりになる方がいましたらご教授ください。
よろしくお願いいたしたします。
No.2ベストアンサー
- 回答日時:
なんとなくわかった。
質問を理解してませんでした。
元のCSVファイルの形式が悪いように思えます。
月~金のみでログファイルは一定、データの増減はない
(編集はある)
とするならば、
## CSV ##
mon1
tue1,tue2,tue3,tue4
wed1
thu1
fri1,fri2
#########
とする。
ファイルを読み取る。
一行目は必ず月曜日、二行目は火曜日と言う風になるので、
$mon = split(",",$file[0]);
$tue = split(",",$file[1]);
等とやる。
count($mon)でやれば値数が帰ってるので、それから計算する。
$mon1 = count($mon);
$mon2 = 4-($mon1-1);
$mon3 = 0;
$mon4 = 0;
$tue1 = count($tue);
$tue2 = 4-($tue1-1);
$tue3 = 0;
$tue4 = 0;
...
for($i=0;$i<=3;$i++){
print "<tr>\n";
if (!$mon3) {
$mon3 = $mon2;
print "<td rowspan="$mon2"> $mon[$mon4]</td>\n";
$mon3--;
$mon4++;
}
if (!$tue3) {
$tue3 = $tue2;
print "<td rowspan="$tue2"> $tue[$tue4]</td>\n";
$tue3--;
$tue4++;
}
...
print "</tr>\n";
}
# 要素数が3の場合は変な動作になる。
# しかしフラグが多すぎて汚いソースになってしまった・・・
# 何の考えなしに組むとだめだね。
moon_night様、ありがとうございます。
for文を提示していただきありがとうございます。
各曜日の値の数をカウントするのですね。
参考にさせていただきます。csvの保存形式は変更しました。
No.1
- 回答日時:
配列に収めればいいのでは?
$rows = array(1,4,1,2,1,1,1,1);
print "rowspan=" .$rows[0];
print "rowspan=" .$rows[1];
など
moon_night様ありがとうございます。
配列に収め、この組み合わせを何通りも作るということでしょうか。
月が3行目のときは以下のようになるのですが、2,3行目の<tr>と表示させる値を
どのように記述していいのかがわかりませんでした。
もし宜しければご教授の程、お願い致します。
<tr>
<td> $Mon1</td>
<td rowspan="3"> $Tue1</td>
<td rowspan="3"> $Wed1</td>
<td rowspan="3"> $Th1</td>
<td rowspan="3"> $Fri1</td>
</tr>
<tr>
<td>$Mon2</td>
</tr>
<tr>
<td>$Mon3</td>
</tr>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで重複チェックの仕方を教え...
-
「取得先」という表現について
-
Excel VBA:特定の文字列以降(...
-
shシェルスクリプト 空白行の...
-
ps3で久しぶりにCDの音楽情報取...
-
開始と終了を指定して、その間...
-
【C#】DataGridViewの最大列数...
-
Dosブロンプトでtabを出力したい
-
findstrのerrorlevel
-
wordの差し込み印刷で文字...
-
XMLのタグの有無をPHPで判定し...
-
VB.NETでボリュームを取得・設...
-
INIファイル
-
VBA内でのGetPixelを使用した時...
-
Google scholarがひらけなくな...
-
完全なセッション破棄をしたい
-
ExcelVBAで、FileSystemObject...
-
WordでExcelデータを差込...
-
VB.NETからVBAマクロ(引数)を呼...
-
webサイトの参考資料:サイト名 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
VBAで重複チェックの仕方を教え...
-
フォームを使わずにPOST送信す...
-
【Java】投稿完了画面リロード...
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
HTMLエスケープ処理とデーター...
-
PHP+MySQLからHTMLページを自動...
-
POSTで受け渡したものを保存し...
-
飛び先のランダムURLの取得方法...
-
cURL関数を使用したphpからのpo...
-
ログイン画面から入って、「戻...
-
BBSにダブルクォーテーションを...
-
アクセスでのデータ保存について。
-
ブラウザの戻るボタンで重複登...
-
ブラウザバックしてもチェック...
-
htmlspecialcharsについて
-
閉じるボタン「×」を制御したい
おすすめ情報