WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CGI perl で書く table

0:[投稿] 樹里 [2003/01/19 15:58 ][環境:IE6 NN7 CGI perl]

@hairetu ('aaa','bbb',…'zzz') と あって
それを 見た目 3列で幾段の table を 作りたい。

<table>
<tr>
<td>(ここに @hairetu から aaa)</td>
<td>(ここに @hairetu から bbb)</td>
<td>(ここに @hairetu から ccc)</td>
</tr>
<tr>
<td>(ここに @hairetu から ddd)</td>
<td>(ここに @hairetu から eee)</td>
<td>(ここに @hairetu から fff)</td>
</tr>
<tr>

<td>(ここに @hairetu から zzz)</td>
</tr>
</table>

3個毎に </tr><tr> を 入れるには どぉしたら 良いでしょうか??
度々お世話になりますが よろしくお願いします。


1:[回答] やじうま1号 [2003/01/19 18:01 ]

foreach(@hairetsu){
 print "<tr>\n" if(not(++$i % 3));
 print "<td>" . $_ . "</td>\n";
 print "</tr>\n" if(not(++$i % 3));
}

ではどうでしょう。(未テストですが)


2:[質問] 樹里 [2003/01/19 18:20 ]

やじうま1号様 度々 ありがとうございます。
>print "<tr>\n" if(not(++$i % 3));
なのですが 最初が 2段で 区切られた後 3段 3段 と 進んでしまい
++$i を $i++ に したところ 思う動作が 出来ました。

改めて
>print "<tr>\n" if(not(++$i % 3));
の if より後の 解説を お願いしたいのですが…。
not って なんでしょう?? よろしくお願いします。


3:[回答] gun [2003/01/19 18:36 ]

if文は、if(真か偽かを判定する条件式)という風に書きます。
    真==true==0以外
    偽==false==0
notは真と偽を反転させます。
今回の場合の if(not($i++ % 3)) を約すと、
    "'$iに1を加えた値'を3で割った余りが出る場合"でない場合
という風になるでしょうか。


4:[回答] gun [2003/01/19 19:46 ]

>>1 に疑問があります。

print "<tr>\n" if(not(++$i % 3));

print "</tr>\n" if(not(++$i % 3));
との両方で++$iを行うと、カウンターの$iの値がおかしくなる様に思うのですが。
下のようにしなくても問題ないですか?
(すみません。未確認ですが。。)

foreach(@hairetsu){
    $i++;
    print "<tr>\n" if(($i % 3)==1);
    print "<td>$_</td>\n";
    print "</tr>\n" if(($i % 3)==0);
}
print "</tr>\n" if($i % 3);


5:[完了] 樹里 [2003/01/19 21:18 ]

gun様 ご回答 ありがとうございます。

if (not… は
if(!… の動作なんですね??

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

…完了しちゃ まずかったかな??


6:[完了] やじうま1号 [2003/01/19 21:28 ]

>>4

間違えました。訂正します。
++$i => $i++


7:[完了] 樹里 [2003/01/20 12:44 ]

やじうま1号様 毎回毎回 お世話になっております。
本当に ありがとうございます。m(_ _)m

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World