秘密基地、どこに作った?

こんばんは。
タイトルのとおりなのですが、掲示板の機能として、新規投稿時や返信時にサイコロを振ってその結果も一緒に投稿されるようにすることは可能でしょうか?
また可能でしたら、どのように実現するのでしょうか?

イメージ的には。。
タイトル、本文など普通掲示板に投稿するのに必要な情報を書く、「サイコロを回す」ボタンをクリック、サイコロが回っていて、送信ボタンを押す。
すると掲示板のログにタイトル、本文などの情報と一緒にサイコロが表示される。(←サイコロを振った結果)
という感じです。

わかりにくい文章で申し訳ないのですが、どなたか理解していただける方、教えていただけると助かります。
よろしくお願いします。

A 回答 (3件)

動くかどうかは知りませんがこんな感じと思われます。


<!--script部分-->
function rand(){
var img=document.images["sai"];
if(img.src=="wait.jpg"){//imgタグと同じurlを指定。軽い不正防止
img.src=(Math.floor(Math.random()*6)+1)+".jpg";//サイコロ用に同じ階層に1~6.jpgを用意しておくこと
}
}

function check(){//サイコロを振っていなければ送信させない
return document.images["sai"].src!="wait.jpg";
}
<!--以下body部分-->
<form>
<img src="wait.jpg" name="sai">
<!--wait.jpgはサイコロを振る前に表示させておく画像url-->
<input type="button" value ="ここを押してサイコロを振る" onclick="rand()">
<input type="submit" value="送信" onsubmit="return check()">
</form>
    • good
    • 0
この回答へのお礼

さっそくの回答、ありがとうございます。
試してみたのですが、なぜかサイコロが回らない。。
うーん。どうしてなんでしょう。送信もできていません。

お礼日時:2006/01/06 22:44

サイコロが回るアニメーションが欲しいのではありませんか? それならタイマー系のjavascriptを追加すればOKです。



※サイコロ画像、"1.gif"~"6.gif"を用意

<html>
<head>
<script type="text/javascript">
<!--
var m_saiNo = 1;

function castSai() {
m_saiNo += (m_saiNo < 6) ? 1: -5;
document.images["sai"].src = m_saiNo + ".gif";
}
// -->
</script>

</head>
<body>

<form>
<img src="1.gif" name="sai" border="1">
<input type="button" value ="サイコロを回す" onclick="window.setInterval('castSai()', 200)">
<input type="submit" value="送信">
</form>

</body>
</html>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうですね、アニメーションがあるイメージでした。

KENT-WEBさんのASKAという掲示板にこのサイコロ機能がつけれたらいいのになぁと思っていたのですが。。うーん。いまいちどうしてよいのかわかりません。
試してみたところ、アニメーションにはなりました!
でも投稿した結果にはサイコロは表示されずなので、やはりどこか間違っているようです。(←自分の改造の仕方が間違ってるということです。(>_<))

お礼日時:2006/01/10 00:11

少し振ったかどうかの判定を変えてみました。


こちらでは動作を確認。
onsubmitをformにつけるところをsubmitボタンに設定していたのに気づきました。
これも修正しました。
~.html?slot=6
のようにクエリが付くよう、hiddenをつけてみました。
いらないときは「クエリ用」のコメントのある行と、hiddenを消してください。
また、投稿時にテキストボックスの文頭や文末に数値を埋め込んでから送信もやろうと思えば出来ますね。

<!--script部分-->
var sw=0;
function rand(){
if(sw==0){//一度しか振れないようにする。軽い不正防止
var n=(Math.floor(Math.random()*6)+1);
document.forms[0].slot.value=n;//クエリ用
document.images["sai"].src=n+".jpg";
sw++;
}
}

function check(){//サイコロを振っていなければ送信させない
return (sw==1?true:false);
}
<!--以下body部分-->
<form onsubmit="return check()">
<img src="wait.jpg" name="sai">
<input type="button" value ="ここを押してサイコロを振る" onclick="rand()">
<input type="hidden" name="slot">
<input type="submit" value="送信">
</form>
    • good
    • 0
この回答へのお礼

たびたび回答ありがとうございます。
試してみたのですが、やはりサイコロが表示されませんでした~。
今回は動作を確認してくださったようですので、やはり原因はわたしの改造の仕方でしょう。。(T_T)
もうちょっと試行錯誤してみます。

お礼日時:2006/01/10 00:13

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


おすすめ情報