初めての投稿ですので至らないところがありましたら申し訳ありません。
js,jQuery,PHP,jsonを用いた投票ツールを作りたいと考えています。
ですがプログラミング初心者でPHPは触れたことがなく、Ajaxについてもあやふやな状況です。
いろいろ調べてみてもGET、POSTなどいろいろあり訳が分からなくなってしまいました。
作成したいプログラム
- 複数人で遊びたいゲームを投票し、その結果をリアルタイムで反映させる。
- ユーザは遊びたいゲームを追加することができる。
- サーバ側で誰が何に投票したのか、またどのゲームが何票投票されたのかを保存し、それをHTMLに反映させる。
HTML上の”追加”ボタンを押すとサーバ内のgameNameList.json内にゲーム候補が追加されるようにしたいです。
またuserNameListに投票した人の名前、投票したゲームを保存したいと考えています。
また”送信”ボタンを押すとページ下部にリアルタイムで投票の詳細を反映させたいと考えています。
つまり、まとめるとだれがどのゲームに投票し、どのゲームが一番人気なのかを表示できるようにしたいのです。
また投票するゲーム候補の追加、投票の訂正もできたらいいと思っています。
お願いしたい内容
- jsからサーバのPHPにjsonデータを送り、それをサーバ内のjsonへpushするプログラムの作成方法
ややこしく書いてしまい申し訳ありません。
超のつく初心者ですので、もしこれ以外の便利な方法があったらそれもご教授願いたいです。
どうぞよろしくお願いいたします。
稚拙ですがいままで書いたコードを載せます。
index.html
1<!--index.html--> 2<!doctype html> 3<html> 4<head> 5<meta charset="utf-8"> 6<title>わたしいるよ</title> 7<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 8<script type="text/javascript" src="gameNameList.json"></script> 9<script type="text/javascript" src="userNameList.json"></script> 10<script type="text/javascript" src="main.js"></script> 11</head> 12<body> 13<form name="post"> 14 <table border="0"> 15 <tr> 16 <td align="right"><b> ユーザー名:</b></td> 17 <td><input type="text" name="name" size="30" maxlength="20"></td> 18 </tr> 19 <tr> 20 <td align="right"><b> パスワード:</b></td> 21 <td><input type="password" name="pass" size="6" maxlength="4"></td> 22 </tr> 23 <tr> 24 <td align="right"><b>遊びたいゲーム:</b></td> 25 <td><div id=gameList> </div> 26 27 <!--イメージ 28 <input type="checkbox" name="gameName" value="ゲームA">ゲームA 29 <input type="checkbox" name="gameName" value="ゲームB">ゲームB 30 <input type="checkbox" name="gameName" value="ゲームC">ゲームC 31 <input type="checkbox" name="gameName" value="ゲームD">ゲームD 32 <input type="checkbox" name="gameName" value="ゲームE">ゲームE--></td> 33 <tr> 34 <td align="right"><b>ゲーム候補を追加:</b></td> 35 <td><input type="text" name="" id="newGameName" value="" placeholder="ゲーム名を入力"> 36 <input type="button" value="追加" id="newGame"> 37 38 </td> 39 </tr> 40 </tr> 41 42 <tr> 43 <td></td> 44 <td><input type="submit" value="送信"> 45 <input type="reset" value="リセット"></td> 46 </tr> 47 <b>自分の選択を訂正したいときには新しくゲームを選択、または何も選択せずに送信</b> 48 </table> 49</form> 50</body> 51</html>
gameNameList.json
1//gameNameList.json 2// JSON Document 3var gameName = [ 4 { 5 name: "ゲームA", 6 counting: 0 7}, { 8 name: "ゲームB", 9 counting: 0 10}, { 11 name: "ゲームC", 12 counting: 0 13}, { 14 name: "ゲームD", 15 counting: 0 16}, 17];
userNameList.json
1//userNameList.json 2// JSON Document 3var userName = [ 4 { 5 name: "testuser", 6 pass: 0000, 7 choseGame: ["ゲームA", "ゲームB"] 8 } 9]
main.js
1//main.js 2// JavaScript Document 3window.addEventListener('load', init); 4 5function init() { 6 "use strict"; 7 console.log(gameName[0].name); 8 var gameList = document.getElementById("gameList"); 9 10 for (var i = 0, l = gameName.length; i < l; i++) { 11 gameList.insertAdjacentHTML('beforeend', '<input type="checkbox" name="gameName" value="' + gameName[i].name + '">' + gameName[i].name); 12 } 13 14 var newGame = $('#newGame'); 15 newGame.on('click', function () { 16 var newGameName = $('#newGameName').val(); 17 console.log(newGameName); 18 var addData = { 19 name: newGameName, 20 counting: 0 21 }; 22 gameName.push(addData); 23 gameList.insertAdjacentHTML('beforeend', '<input type="checkbox" name="gameName" value="' + gameName[gameName.length - 1].name + '">' + gameName[gameName.length - 1].name); 24 25 26 //このあたりからわからない 27 $.ajax({ 28 //処理を記述 29 }); 30 }); 31}
どうぞよろしくお願いいたします。