- ベストアンサー
web上で複数人が共同で編集できるチェックボックス
web上で複数人が共同で編集できるチェックボックスを探しています。 簡単に編集(1クリックでON OFFが出来れば理想)でき、用途はオンラインゲームのアイテム管理に使います。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
実のところprototype.jsは使ってないのでまずかったようで・・ これならどうでしょう? キャッシュの問題に小細工。 今度は自分のHPにアップして動作確認しました <html> <head> <script type="text/javascript" src="./prototype.js"></script> </head> <body> <form> <input type="checkbox" id="c0">abc<br> <input type="checkbox" id="c1">def<br> <input type="checkbox" id="c2">ghi<br> <input type="checkbox" id="c3">jkl<br> <input type="checkbox" id="c4">mno<br> </form> <script> window.onload=function(){ document.body.onclick = chk; loadtext('check.dat'); setInterval("loadtext('check.dat')" ,2000); } function chk(e){ var o=e?e.e.target:event.srcElement,n; var n=o.id.match(/c(\d+)$/); if(!n) return; var d=(new Date).getTime(); new Ajax.Request('./setchk.php', { method:'get', parameters:'n='+n[1]+'&f='+(o.checked?1:0)+'&d='+d}); } function loadtext(n){ var c = (new Date()).getTime(); new Ajax.Request(n, { method: "get", parameters: "c="+c, onSuccess:function(oj){ for(var i=0,mx=oj.responseText.length;i<mx;i++) document.getElementById('c'+i).checked =(oj.responseText.substr(i,1)=='1'); } }); } </script>
その他の回答 (4)
check.datの内容を11111として index.htmlを開くと2秒後にチェックボックスがオンになりませんか? チェックボックスをオンにしてもオフに戻ってしまうとか? なにか情報がないと・・・
訂正 function chk(e){ var o=e?e.target:event.srcElement,n;
お礼
ありがとうございます。 index.html setchk.php(文末に?>を追加) check.dat を作成し、prototype.js(1.6.0)をダウンロードしてきてアップロードをし、パーミッションも変更してみましたが出来ませんでした。
<html> <head> <script type="text/javascript" src="prototype.js"></script> </head> <body> <form> <input type="checkbox" id="c0">abc<br> <input type="checkbox" id="c1">def<br> <input type="checkbox" id="c2">ghi<br> <input type="checkbox" id="c3">jkl<br> <input type="checkbox" id="c4">mno<br> </form> <script> window.onload=function(){ document.body.onclick = chk; // loadtext('check.dat'); setInterval("loadtext('check.dat')" ,2000); } function chk(e){ var o=e?e.e.target:event.srcElement,n; var n=o.id.match(/c(\d+)$/); if(!n) return; new Ajax.Request('setchk.php', { method:'get', parameters:'n='+n[1]+'&f='+(o.checked?1:0)}); } function loadtext(n){ new Ajax.Request('check.dat', { onSuccess: function(oj){ for(var i=0,mx=oj.responseText.length;i<mx;i++) document.getElementById('c'+i).checked =(oj.responseText.substr(i,1)=='1'); } }); } </script> ----------- setchk.php <?php $n=$_GET['n']; $f=$_GET['f']; $fp=fopen('check.dat','r');$d=fgets($fp);fclose($fp); $wd ='';$v=''; for($i=0;$i<strlen($d);$i++){ $v=substr($d,$i,1); if($i==$n) $v=$f; $wd.=$v; } $fp=fopen('check.dat','w');fputs($fp,$wd);fclose($fp); ---------- check.dat 00000
- yambejp
- ベストアンサー率51% (3827/7415)
状況がわかりかねますが、onclickする際に、ajaxでサーバー情報を とってきて変更されている場合はjavascriptでalertをだすという 手順でしょうか・・・ 普通に考えれば、競合しますね。
お礼
回答ありがとうございます。 ごめんなさい。説明不足でした。 http://www.happywhisper.com/juken/img/cklist/checklist_02.gif こんな感じのチェックシートにチェックをつけて結果を共有でき また手軽に編集(チェックを外したり付けたり)できるスクリプトの事です。 僕の力では1から作れそうにないのでそういうスクリプトを配布されているところを探しています。
お礼
ありがとうございます。 無事動きました。