最新閲覧日:

急ぎです
ページ開いたときに確率によって出る画像なんかを変える(何%で画像A、残り何%で画像Bが出るみたいな感じ)ことができるって聞いたことあるんですけど、やり方知ってる方が居ましたら教えてください。
自分でも調べてみたのですが良くわかんないってゆうか見つからないとゆうか・・・・
お願いします

A 回答 (5件)

2つだとできたんですよね?


4つではどんな風にできないんでしょう?
具体的に教えてください。

・4つの画像がどうしても出てこないのか
・4つにしようとするとエラーが発生するのか

など。

$image_noにどんな数字が入っているかを
printで表示させてみるなどして、
どこまでが正しくできているかを見極めていけば
どこが間違いの部分かがわかると思いますよ。
    • good
    • 0

あれ?CGIも試されたんですか?



2つだとうまくいって4つだとうまくいかないのは
単なるミスだと思いますがどのように書かれてますか?
エラーが出るのでしょうか?
それとも4枚出るはずが3枚しか出ないとかでしょうか?

imageA:10%(数字の0)
imageB:30%(数字の123)
imageC:40%(数字の4567)
imageD:20%(数字の89)
と言う風に決めておくと

$image_no = int(rand(10));
if($image_no < 1){
$image = imageA.jpg;
}elsif($image_no < 4){
$image = imageB.jpg;
}elsif($image_no < 8){
$image = imageC.jpg;
}else{
$image = imageD.jpg;
}
print "<img src=$image>\n";

と書けばよいかと思います。
もしこれでもうまくいかなかったら、

$image_no = int(rand(10));
の上に
srand;
と書いてみて下さい。
そうすると乱数を初期化します。

この回答への補足

何度もありがとうございます
やってみたのですができませんでした
思ったのですが出来ないのはたぶん(とゆうか確実に)僕のCGIに対する知識の無さのせいだと思うんですよ
それか認識の間違いか
それでそうゆうのを探してみたんですがさっぱりでした
どうしましょう

補足日時:2002/03/24 23:35
    • good
    • 0

そういえばこれぐらいJavaScriptでも出来ますよね。


CGIならある程度知識があるのですが、JavaScriptはほとんど使ったこと無いので
CGIならわかると思って以下のように質問してしまいました。

でも基本的にはJavaScriptの方法と同じですよ。
違いは、JavaScriptの場合は、最初にすべての画像を読み込んでしまうはずなので、
ランダムに表示させたい画像が多くなった場合あまりお薦めできません。
CGIの場合は、表示させる画像しか読み込まないです。

20%で画像A、80%で画像Bが出るみたいな感じにするとしたら
$image_no = int(rand(10));  # $image_no に0~9の数字が入ります。ここでは必ずしも整数化する必要はありません。
if($image_no < 2){
$image = imageA.jpg;
}else{
$image = imageB.jpg;
}
print "<img src=$image>\n";

っていう感じですかね。
僕が実際に自分のホームページでやってるのは、
300枚ぐらいの画像を等確率でランダムに表示させてますので、
配列「@imagefiles」にファイルから読みとった300枚の画像のファイル名(パス)を入れた後に、

$image_no = int(rand($#imagefiles+1));  
print "<img src=$imagefiles[$image_no]>\n";

のように使ってます。
この場合は配列の引数にそのまま使ってますので整数化する必要があります。

この回答への補足

ありがとうございます
やってみたのですがうまくいきませんでした
k-ishidateさんのもそうだったのですが、画像が2つだとうまくいくんです
でも、僕が今やりたいのは4つ(始めから言っとけとかいうツッコミはなしで)なんですが、4つになるとできなくなるんですよ
どうなんですかね
できればくわしく教えていただけないでしょうか

補足日時:2002/03/24 13:23
    • good
    • 0

JavaScriptではどうでしょう。

HTMLに埋め込むので、
サーバで自作CGIが使えなくても可能です。

私は以下のコードで確認をしてみました。とりあえずダミーの画像リンクを
置いて、その後JavaScriptで乱数を発生させ、約1/2の確率で
瞬時に画像の置き換えをしています。

<HTML>
<BODY>
<IMG SRC="dummy.jpg" NAME="img" >
<SCRIPT LANG="JavaScript">
<!--
i = Math.random();
if ( i > 0.5){
document.img.src = "Dscf0031.jpg";
} else {
document.img.src = "Dscf0032.jpg";
}
// -->
</SCRIPT>
</BODY>
</HTML>

画像の変更は、参考URLを見てみて下さい。乱数については、
検索サイトで「JavaScript」「乱数」で検索してみてください。

参考URL:http://www.ueda.info.waseda.ac.jp/~gaku/js/
    • good
    • 0
この回答へのお礼

ありがとうございます
これでもよさそうなのですがなんかちがうきがするんです
どうなんでしょうか(謎

とにかくありがとうございました
一度試しにやってみます

お礼日時:2002/03/23 13:07

あくまでHTMLでやりたいという話ですか?


CGIを使えば簡単に出来ますが・・・。

この回答への補足

はい、出きるのであればHTMLがいいです。
でも、そのCGIのやり方も教えていただけるのなら教えてほしいです

補足日時:2002/03/23 13:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報