
月~金までそれぞれ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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) エクセルのオートフィルが英語でしか機能しない 1 2022/06/02 22:43
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excelで祝日を除く1回目の金曜日を返す 3 2023/01/31 16:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jspで作った入力フォーム内...
-
PDF出力
-
GETとPOST
-
ページに時間制限
-
ランキングサイトのスパム登録...
-
動的にhtmlテーブルを表示
-
httpでもログインフォームは暗...
-
PHPでSESSIONによる変数の引き継ぎ
-
htmlspecialcharsの挙動について
-
IFRAME内PHPのセッション変数取...
-
ログイン画面から入って、「戻...
-
PHPで値を保持する方法
-
asp.netでのセッションを使用し...
-
閉じるボタン「×」を制御したい
-
Yahoo! JAPAN IDを新規取得でき...
-
.htaccessについて
-
Dosブロンプトでtabを出力したい
-
重複を無くしたい
-
「取得先」という表現について
-
【C#】DataGridViewの最大列数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IFRAME内PHPのセッション変数取...
-
PHPで値を保持する方法
-
POSTで受け渡したものを保存し...
-
cURL関数を使用したphpからのpo...
-
php 入力画面から確認表示画面...
-
htmlspecialcharsについて
-
php history.back()の戻るボタ...
-
セッションを使用したページ遷移
-
ログイン画面から入って、「戻...
-
ブラウザの戻るボタンで重複登...
-
「ページネーション」で検索キ...
-
閉じるボタン「×」を制御したい
-
動的にhtmlテーブルを表示
-
PHP+MySQLからHTMLページを自動...
-
ブラウザバックしてもチェック...
-
PHP+MySQLで型の整合について
-
HTMLエスケープ処理とデーター...
-
登録確認メールのリンクURLにメ...
-
PHP スマーティ
-
VBAで重複チェックの仕方を教え...
おすすめ情報