• ベストアンサー

web上で複数人が共同で編集できるチェックボックス

web上で複数人が共同で編集できるチェックボックスを探しています。 簡単に編集(1クリックでON OFFが出来れば理想)でき、用途はオンラインゲームのアイテム管理に使います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.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>

kuroneko98
質問者

お礼

ありがとうございます。 無事動きました。

その他の回答 (4)

noname#84373
noname#84373
回答No.4

check.datの内容を11111として index.htmlを開くと2秒後にチェックボックスがオンになりませんか? チェックボックスをオンにしてもオフに戻ってしまうとか? なにか情報がないと・・・

noname#84373
noname#84373
回答No.3

訂正 function chk(e){ var o=e?e.target:event.srcElement,n;

kuroneko98
質問者

お礼

ありがとうございます。 index.html setchk.php(文末に?>を追加) check.dat を作成し、prototype.js(1.6.0)をダウンロードしてきてアップロードをし、パーミッションも変更してみましたが出来ませんでした。

noname#84373
noname#84373
回答No.2

<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)
回答No.1

状況がわかりかねますが、onclickする際に、ajaxでサーバー情報を とってきて変更されている場合はjavascriptでalertをだすという 手順でしょうか・・・ 普通に考えれば、競合しますね。

kuroneko98
質問者

お礼

回答ありがとうございます。 ごめんなさい。説明不足でした。 http://www.happywhisper.com/juken/img/cklist/checklist_02.gif こんな感じのチェックシートにチェックをつけて結果を共有でき また手軽に編集(チェックを外したり付けたり)できるスクリプトの事です。 僕の力では1から作れそうにないのでそういうスクリプトを配布されているところを探しています。