changeset 3621:164395a050f4

add kuchikomi program
author ITO Shiho <c115022@g.koeki-u.ac.jp>
date Tue, 30 Jan 2018 16:22:17 +0900
parents 7a045bd97f49
children 9ff3188fd649
files shuzai/ice/.htaccess shuzai/ice/ajax.rb shuzai/ice/babychuchu/ajax.rb shuzai/ice/babychuchu/babychuchu.html shuzai/ice/babychuchu/bchu.json shuzai/ice/babychuchu/onari.css shuzai/ice/babychuchu/phos.js shuzai/ice/bchu.json shuzai/ice/moare.json shuzai/ice/moare/ajax.rb shuzai/ice/moare/moare.html shuzai/ice/moare/moare.json shuzai/ice/moare/onari.css shuzai/ice/moare/phos.js shuzai/ice/onari.css shuzai/ice/phos.js
diffstat 15 files changed, 504 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/.htaccess	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,3 @@
+AddHandler cgi-script   .rb
+Options +ExecCGI
+AddType "text/html; charset=utf-8" .html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/ajax.rb	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,52 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+
+require 'cgi'
+require 'json'
+
+#moare = "moare.js"
+#bchu = "bchu.js"
+
+c = CGI.new
+s = c['shop']
+name = c['name']
+star = c['star']
+comment = c['comment']
+sjs = ''
+inputs = {}
+
+if s == "moare"
+  sjs = 'moare.json'
+elsif s == "bchu"
+  sjs = 'bchu.json'
+end
+
+if star.to_i == 0
+  star = 3
+elsif star.to_i > 5
+  star = 5
+elsif star.to_i < 1
+  star = 1
+end
+
+#p sjs
+data = File.open(sjs) do |io|
+  JSON.load(io)
+end
+inputs["name"] = name
+inputs["star"] = star
+inputs["comment"] = comment
+
+if name != "" && star != "" && comment != ""
+data.unshift(inputs)
+end
+
+poi = File.open(sjs, "w") do |file|
+  str = JSON.dump(data, file)
+end
+#sleep(3)
+
+print "Content-type: text/plain; charset=UTF-8\n\n"
+
+#puts "#{s},#{name},#{star},#{comment}"
+puts JSON.pretty_generate(data)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/babychuchu/ajax.rb	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,52 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+
+require 'cgi'
+require 'json'
+
+#moare = "moare.js"
+#bchu = "bchu.js"
+
+c = CGI.new
+s = c['shop']
+name = c['name']
+star = c['star']
+comment = c['comment']
+sjs = ''
+inputs = {}
+
+if s == "moare"
+  sjs = 'moare.json'
+elsif s == "bchu"
+  sjs = 'bchu.json'
+end
+
+if star.to_i == 0
+  star = 3
+elsif star.to_i > 5
+  star = 5
+elsif star.to_i < 1
+  star = 1
+end
+
+#p sjs
+data = File.open(sjs) do |io|
+  JSON.load(io)
+end
+inputs["name"] = name
+inputs["star"] = star
+inputs["comment"] = comment
+
+if name != "" && star != "" && comment != ""
+data.unshift(inputs)
+end
+
+poi = File.open(sjs, "w") do |file|
+  str = JSON.dump(data, file)
+end
+#sleep(3)
+
+print "Content-type: text/plain; charset=UTF-8\n\n"
+
+#puts "#{s},#{name},#{star},#{comment}"
+puts JSON.pretty_generate(data)
--- a/shuzai/ice/babychuchu/babychuchu.html	Fri Jan 26 15:49:49 2018 +0900
+++ b/shuzai/ice/babychuchu/babychuchu.html	Tue Jan 30 16:22:17 2018 +0900
@@ -10,8 +10,10 @@
 -->
 </style>
 <link rel="stylesheet" type="text/css" href="pra.css">
+<link rel="stylesheet" type="text/css" href="onari.css">
+<script type="text/javascript" src="phos.js"></script>
 </head>
-<body>
+<body onload="asyncSend()">
 
 <div class="top">
 <h1>
@@ -60,6 +62,21 @@
 </div>
 
 <!-- kwsk end-->
+<div class="section">
+<div class="textArea" id="textArea">
+<div id="nk"></div>
+</div>
+</div>
+<form name="fm">
+<p>your name:<input type="text" name="name" size="15"></p>
+<p>stars:<input type="number" name="star" max="5" min="1" required>/5</p>
+<p>comments:<br>
+<textarea name="comments" cols="40" rows="5" maxlength="200" required></textarea></p>
+<input type="button" id="btnsend" name="submit" value="submit" onclick="asyncSend()">
+<input type="hidden" name="shop" id="shop" value="bchu">
+</form>
+
+<div id="result"></div>
 
 <div class="footer">
   Copyright &copy; 東北公益文科大学学内サークル SKIP. All Rights Reserved.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/babychuchu/bchu.json	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,1 @@
+[{"name":"帆","star":3,"comment":"おいしい"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/babychuchu/onari.css	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,20 @@
+div.section{
+width:70%;
+background-color: #c6c6ff;
+border: 1px red solid;
+font-size: 80%;
+}
+
+div.section div.textArea{
+height: 200px;
+overflow: auto;
+}
+
+div.section div.textArea p{
+margin: 1em 10px;
+}
+
+div.com{
+border: 3px solid navy;
+border-radius: 3em 3em;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/babychuchu/phos.js	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,82 @@
+/*function read(){
+    var field = document.getElementById('textArea');
+}
+function write(){//ajaxするよ
+}*/
+
+function mkfield(note){
+    var a = 0;
+    var b = note.length;
+    var c = document.createElement('div');
+
+//    console.log(a < b);
+
+    while (a < b){
+
+//	console.log(c);
+
+	var box = document.createElement('div');
+	var nas = document.createElement('p');
+	var coms = document.createElement('p');
+
+	var name = note[a]["name"];
+	var star = note[a]["star"].toString();
+	var comment = note[a]["comment"];
+
+	var nas2 = document.createTextNode(name + " | " + star + " stars");
+	var coms2 = document.createTextNode(comment);
+
+	box.setAttribute('class','com');
+
+	nas.appendChild(nas2);
+	coms.appendChild(coms2);
+	box.appendChild(nas);
+	box.appendChild(coms);
+
+	c.appendChild(box);
+
+	a++;
+    }
+//    console.log(c);
+    c.setAttribute('id','nk');
+    return c;
+}
+
+function asyncSend(){
+    var req = new XMLHttpRequest();
+    req.onreadystatechange = function() {
+	var result = document.getElementById('result');
+//	var shop = document.getElementById('shop').value;
+	if (req.readyState == 4){//通信完了
+	    if (req.status == 200){//通信成功
+		var note = JSON.parse(req.responseText);
+		var field = document.getElementById('textArea');
+
+		field.replaceChild(mkfield(note),document.getElementById('nk'));
+
+//		field.innerHTML = mkfield(note);
+//		mkfield(note);
+		console.log(mkfield(note).childNodes);
+
+		result.innerHTML = "";//req.responseText;
+//		console.log(note[0]["name"]);
+	    }
+	}else{
+//	    console.log(req.responseText);
+//	    result.innerHTML = JSON.parse(req.responseText);
+	    result.innerHTML = "通信中";
+	}
+    }
+    req.open('POST', 'ajax.rb', true);
+    req.setRequestHeader('content-type',
+			 'application/x-www-form-urlencoded;charset=UTF-8');
+    req.send('shop='+ encodeURIComponent(document.fm.shop.value) + '&'+
+	     'name=' + encodeURIComponent(document.fm.name.value) + '&' +
+	     'star=' + encodeURIComponent(document.fm.star.value) + '&' +
+	     'comment=' + encodeURIComponent(document.fm.comments.value)
+	    );
+}
+
+
+
+//https://qiita.com/katsunory/items/9bf9ee49ee5c08bf2b3d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/moare.json	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,1 @@
+[{"name":"帆","star":"3","comment":"改行の\nテスト"},{"name":"帆","star":"5","comment":"店の雰囲気が良い。おいしい。"},{"name":"ji","star":"4","comment":"kokok"},{"name":"jode","star":4,"comment":"momomo"},{"name":"hoge","star":3,"comment":"yummy"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/moare/ajax.rb	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,52 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+
+require 'cgi'
+require 'json'
+
+#moare = "moare.js"
+#bchu = "bchu.js"
+
+c = CGI.new
+s = c['shop']
+name = c['name']
+star = c['star']
+comment = c['comment']
+sjs = ''
+inputs = {}
+
+if s == "moare"
+  sjs = 'moare.json'
+elsif s == "bchu"
+  sjs = 'bchu.json'
+end
+
+if star.to_i == 0
+  star = 3
+elsif star.to_i > 5
+  star = 5
+elsif star.to_i < 1
+  star = 1
+end
+
+#p sjs
+data = File.open(sjs) do |io|
+  JSON.load(io)
+end
+inputs["name"] = name
+inputs["star"] = star
+inputs["comment"] = comment
+
+if name != "" && star != "" && comment != ""
+data.unshift(inputs)
+end
+
+poi = File.open(sjs, "w") do |file|
+  str = JSON.dump(data, file)
+end
+#sleep(3)
+
+print "Content-type: text/plain; charset=UTF-8\n\n"
+
+#puts "#{s},#{name},#{star},#{comment}"
+puts JSON.pretty_generate(data)
--- a/shuzai/ice/moare/moare.html	Fri Jan 26 15:49:49 2018 +0900
+++ b/shuzai/ice/moare/moare.html	Tue Jan 30 16:22:17 2018 +0900
@@ -10,8 +10,10 @@
 -->
 </style>
 <link rel="stylesheet" type="text/css" href="pra.css">
+<link rel="stylesheet" type="text/css" href="onari.css">
+<script type="text/javascript" src="phos.js"></script>
 </head>
-<body>
+<body onload="asyncSend()">
 
 <div class="top">
 <h1>
@@ -74,6 +76,21 @@
 </div>
 
 <!-- kwsk end-->
+<div class="section">
+<div class="textArea" id="textArea">
+<div id="nk"></div>
+</div>
+</div>
+<form name="fm">
+<p>your name:<input type="text" name="name" size="15"></p>
+<p>stars:<input type="number" name="star" max="5" min="1" required>/5</p>
+<p>comments:<br>
+<textarea name="comments" cols="40" rows="5" maxlength="200" required></textarea></p>
+<input type="button" id="btnsend" name="submit" value="submit" onclick="asyncSend()">
+<input type="hidden" name="shop" id="shop" value="moare">
+</form>
+
+<div id="result"></div>
 
 <div class="footer">
   Copyright &copy; 東北公益文科大学学内サークル SKIP. All Rights Reserved.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/moare/moare.json	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,1 @@
+[{"name":"nyar","star":"3","comment":"umashi"},{"name":"帆","star":"3","comment":"改行の\nテスト"},{"name":"帆","star":"5","comment":"店の雰囲気が良い。おいしい。"},{"name":"ji","star":"4","comment":"kokok"},{"name":"jode","star":4,"comment":"momomo"},{"name":"hoge","star":3,"comment":"yummy"}]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/moare/onari.css	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,20 @@
+div.section{
+width:70%;
+background-color: #c6c6ff;
+border: 1px red solid;
+font-size: 80%;
+}
+
+div.section div.textArea{
+height: 200px;
+overflow: auto;
+}
+
+div.section div.textArea p{
+margin: 1em 10px;
+}
+
+div.com{
+border: 3px solid navy;
+border-radius: 3em 3em;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/moare/phos.js	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,82 @@
+/*function read(){
+    var field = document.getElementById('textArea');
+}
+function write(){//ajaxするよ
+}*/
+
+function mkfield(note){
+    var a = 0;
+    var b = note.length;
+    var c = document.createElement('div');
+
+//    console.log(a < b);
+
+    while (a < b){
+
+//	console.log(c);
+
+	var box = document.createElement('div');
+	var nas = document.createElement('p');
+	var coms = document.createElement('p');
+
+	var name = note[a]["name"];
+	var star = note[a]["star"].toString();
+	var comment = note[a]["comment"];
+
+	var nas2 = document.createTextNode(name + " | " + star + " stars");
+	var coms2 = document.createTextNode(comment);
+
+	box.setAttribute('class','com');
+
+	nas.appendChild(nas2);
+	coms.appendChild(coms2);
+	box.appendChild(nas);
+	box.appendChild(coms);
+
+	c.appendChild(box);
+
+	a++;
+    }
+//    console.log(c);
+    c.setAttribute('id','nk');
+    return c;
+}
+
+function asyncSend(){
+    var req = new XMLHttpRequest();
+    req.onreadystatechange = function() {
+	var result = document.getElementById('result');
+//	var shop = document.getElementById('shop').value;
+	if (req.readyState == 4){//通信完了
+	    if (req.status == 200){//通信成功
+		var note = JSON.parse(req.responseText);
+		var field = document.getElementById('textArea');
+
+		field.replaceChild(mkfield(note),document.getElementById('nk'));
+
+//		field.innerHTML = mkfield(note);
+//		mkfield(note);
+		console.log(mkfield(note).childNodes);
+
+		result.innerHTML = "";//req.responseText;
+//		console.log(note[0]["name"]);
+	    }
+	}else{
+//	    console.log(req.responseText);
+//	    result.innerHTML = JSON.parse(req.responseText);
+	    result.innerHTML = "通信中";
+	}
+    }
+    req.open('POST', 'ajax.rb', true);
+    req.setRequestHeader('content-type',
+			 'application/x-www-form-urlencoded;charset=UTF-8');
+    req.send('shop='+ encodeURIComponent(document.fm.shop.value) + '&'+
+	     'name=' + encodeURIComponent(document.fm.name.value) + '&' +
+	     'star=' + encodeURIComponent(document.fm.star.value) + '&' +
+	     'comment=' + encodeURIComponent(document.fm.comments.value)
+	    );
+}
+
+
+
+//https://qiita.com/katsunory/items/9bf9ee49ee5c08bf2b3d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/onari.css	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,20 @@
+div.section{
+width:70%;
+background-color: #c6c6ff;
+border: 1px red solid;
+font-size: 80%;
+}
+
+div.section div.textArea{
+height: 200px;
+overflow: auto;
+}
+
+div.section div.textArea p{
+margin: 1em 10px;
+}
+
+div.com{
+border: 3px solid navy;
+border-radius: 3em 3em;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shuzai/ice/phos.js	Tue Jan 30 16:22:17 2018 +0900
@@ -0,0 +1,82 @@
+/*function read(){
+    var field = document.getElementById('textArea');
+}
+function write(){//ajaxするよ
+}*/
+
+function mkfield(note){
+    var a = 0;
+    var b = note.length;
+    var c = document.createElement('div');
+
+//    console.log(a < b);
+
+    while (a < b){
+
+//	console.log(c);
+
+	var box = document.createElement('div');
+	var nas = document.createElement('p');
+	var coms = document.createElement('p');
+
+	var name = note[a]["name"];
+	var star = note[a]["star"].toString();
+	var comment = note[a]["comment"];
+
+	var nas2 = document.createTextNode(name + " | " + star + " stars");
+	var coms2 = document.createTextNode(comment);
+
+	box.setAttribute('class','com');
+
+	nas.appendChild(nas2);
+	coms.appendChild(coms2);
+	box.appendChild(nas);
+	box.appendChild(coms);
+
+	c.appendChild(box);
+
+	a++;
+    }
+//    console.log(c);
+    c.setAttribute('id','nk');
+    return c;
+}
+
+function asyncSend(){
+    var req = new XMLHttpRequest();
+    req.onreadystatechange = function() {
+	var result = document.getElementById('result');
+//	var shop = document.getElementById('shop').value;
+	if (req.readyState == 4){//通信完了
+	    if (req.status == 200){//通信成功
+		var note = JSON.parse(req.responseText);
+		var field = document.getElementById('textArea');
+
+		field.replaceChild(mkfield(note),document.getElementById('nk'));
+
+//		field.innerHTML = mkfield(note);
+//		mkfield(note);
+		console.log(mkfield(note).childNodes);
+
+		result.innerHTML = "";//req.responseText;
+//		console.log(note[0]["name"]);
+	    }
+	}else{
+//	    console.log(req.responseText);
+//	    result.innerHTML = JSON.parse(req.responseText);
+	    result.innerHTML = "通信中";
+	}
+    }
+    req.open('POST', 'ajax.rb', true);
+    req.setRequestHeader('content-type',
+			 'application/x-www-form-urlencoded;charset=UTF-8');
+    req.send('shop='+ encodeURIComponent(document.fm.shop.value) + '&'+
+	     'name=' + encodeURIComponent(document.fm.name.value) + '&' +
+	     'star=' + encodeURIComponent(document.fm.star.value) + '&' +
+	     'comment=' + encodeURIComponent(document.fm.comments.value)
+	    );
+}
+
+
+
+//https://qiita.com/katsunory/items/9bf9ee49ee5c08bf2b3d

yatex.org