- 締切済み
html埋め込みvote機能、票数だけ表示
個人ページに設置したいとおもったのですが、アンケート形式が多く、あっても票数だけを表示するようなものがなかなかみつかりません。 私には、ちょっと作れないものなので、甘ったれたことを言います、誰か作ってください・・・! 投票ですが、アンケートではありません、ちょっと扱いは違いますが『へぇ~ボタン』の押された回数を閲覧者全員で共有するようなイメージです。いや、拍手数かな? 設置: ・専用のページを作るのではなく、既存のhtmlに埋め込む形で使用します。(カウンターのような感じで) ・シンプルに投票された数字だけを表示します。 ・同一ページに複数の投票があります。 ・ラジオボタンで投票先を選ぶものではなく、ただただ投票ボタンを押すだけでカウントされます ・ 投票: ・オンマウスクリックイベントでCGIにオーダーが行って対応する投票にカウント+1される感じでできますでしょうか?。 ・投票ごとの識別(idとかCGIに渡す際のパラメータとか識別方法はよくわからないですが) 見本を参考に投票送信ボタンを自分で作りますのでcgiで出力されなくても(多分)大丈夫(htmlかJavascript) ・二重投票防止はいりません。 気になる: ・おそらく、ページ自体を更新しなければ投票された数は押した瞬間に増えないですよね?それとも普通に増えますか? 備考: ・html、css、と簡単なJavascriptなら書けます。 ・配布CGIのBBS等も設置できます(説明に従ったUPと属性の設定) ・Perlを学習しようとは今現在思っていません。 ・でも、ちょこちょこいじるぐらいには覚えるかもしれません。 -------------------------------------------------- コンテンツ ほにゃらら希望ボタン[id1] 票数表示[id1] コンテンツ コンテンツ へぇボタン[id2] 票数表示[id2] コンテンツ へぇボタン[id3] 票数表示[id3] --------------------- のようなイメージです。識別はidでするのかそれとも別にパラメーターがあるのかな? とにかく、htmlにCGIで描画(埋め込み?)したいのは対応したid(id?)の票数のみです なんとなく無茶いっているような気がします。よろしくお願いします。 それから、もしよかったらどこかにアップロードしていただけるとかなり嬉しいです。 何年でも待ちます(?)。馬鹿なこといってんじゃねー!っていうのもOKです。 意味不明なことをいっていたらごめんなさい、補足しますので質問ください。 素敵プログラマーが現れることを祈って・・・
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hikachu
- ベストアンサー率24% (8/33)
イメージを伝えますと。。。 フォームで送るって考えがいいかもしれません Javascriptは停止してるユーザーさんもいらっしゃるので。。。(笑 CGI、PHP共に言えることなのですが 適当にカウント用.txtでも作っておいて そのファイルを開く 追加計算した値を上書き ファイルを閉じる という流れが一番安全かと? ただ、同時に開けないようにしておいてください(笑 >やはりPHPの方がいいのでしょうか? どうでしょ?Ajaxでもいけそうですけど。。。 htmlは変数がダメなので。。。。 比較的簡単な言語としてPHPがオススメです >PHPの場合ページを更新することなく投票した数値を反映することはできるのでしょうか? フォームを送る先が同ページの場合は更新扱いですかね?(笑 >おそらく、ページ自体を更新しなければ投票された数は押した瞬間に増えないですよね?それとも普通に増えますか? 基本的にフォームでsubmitした時にページ移動と考えておいた方がいいですね actionの先を同ファイルにしても値は受け取れるのですが。。。 その場合はhiddenにでもして元の値も一緒にsubmitしてあげれば問題ないです
- hikachu
- ベストアンサー率24% (8/33)
クリックされる度に+1ということですね? フォームでCGIに送るのがいいのではないですか? 1を送ってCGIで前の数に足していく感じでいいかと(笑 ただ。。。HTML自体に変数(今現在の数)を使えないのでPHPになるかと?
お礼
ご回答ありがとうございます! やはりPHPの方がいいのでしょうか? PHPの場合ページを更新することなく投票した数値を反映することはできるのでしょうか? それから、提案した補足のようにCGIでjsの特定の部分だけを書き換えるようなことはできるのでしょうか?
補足
少しイメージしてみました。 clct.js[innerHTMLが票数] --------------- function clct(){ document.getElementById("clct0001").innerHTML="100"; document.getElementById("clct0002").innerHTML="20"; } .html --------------- <head> <script type="text/javascript" src="clct.js"></script> </head> <body onload="clct"> 投票1:<span id="clct0001">0</span>点<br> 投票2:<span id="clct0002">0</span>点 ____________________________________ clct.cgi?id=clct0002で、clct.jsの document.getElementById("clct0002").innerHTML="20"; のinnerHTML="20"の値を21に書き換える ような物はできませんでしょうか? またこの時、js内にclct0002の行がなければCGIでdocument.getElementById("clct0002").innerHTML="1"; を追加書き込みする それから、やはり同一ipからの連続投票は10回ぐらいまでとしたいです。 あと、表示はページを更新するごとに数値反映でOKです。
お礼
回答ありがとうございます。 うーん、PHPの勉強してみます。