実現性のサンプルを作成中です。
実現のイメージはあるのですが製造未経験のため引き出しが皆無です。
ご協力をお願いします。
OS:windows7
開発環境:visualstudio2017
言語:c#
フレームワーク:asp.net MVC Framework
DB:Postgresql
やりたいことと実現イメージ
ajax処理。
データベースに定義されている各パーツフィールドのtrue:falseの情報を一定周期でjson形式で取得し値に応じて、対応するパーツの絵(svg)の色(fill)を動的に切替えたい。
今回は変更ボタンを押した際に変更する。
データの形式
json
1Test.json 2 3 { 4 "judge1": true, 5 "judge2": false, 6 "judge3": true 7 } 8 9
現状(ロード時)
下図は上記のjsonファイルをhttpのGETで取得し、load時にage(表示1)とname(表示2)を取得し表示したものになります。*(1 jsonデータ修正したので対応してません。
※urlの部分を自分のローカルで実現したいが実現方法がわからない。
現状のコード(クライアント)
javascript
1 $(function () { 2 $('#btn1').click( 3 function () { 4 $("out6").html("データ取得"); 5 6 7 8 // $(window).load(function () { 9 //$("#sample").html("テストを行います"); 10 11 //1.$.ajaxメソッドで通信を行う 12 // dataでは、フォームの内容をserialize()している 13 // →serialize()の内容は、cs1=custom1&cs2=custom2 14 $.ajax({ 15 url: 'http://www.json-generator.com/api/json/get/cggIIAmKnC?indent=2', 16 type: 'GET', 17 datatype: 'json', 18 //2. doneは通信に成功したときに実行される処理 19 //引数のdata1は通信で取得したデータ 20 //引数のtextstatusは通信結果のステータス 21 //引数のjqzXHRは、XMLHttpRequestオブジェクト 22 }).done(function (data1, textStatus, jqXHR) { 23 $("#out1").html(jqXHR.status); 24 $("#out2").html(textStatus); 25 26 //3. キーを指定して値を表示 27 console.log(data1); 28 $("#out4").html(data1["judge1"]); 29 //取得したageのvalueをrectのid='PA_1'へ設定する 30 //$(function () { 31 // var age = $('#PA_1').val(data1[0]["age"]); 32 // if (age.val > 41) { 33 // console.log('赤') 34 // } else { 35 // console.log('緑') 36 // } 37 //}); 38 39 40 41 42 //4.オブジェクトをjson形式の文字列に変換 43 var data2 = JSON.stringify(data1); 44 console.log(data2);//コンソールへjson形式で表示 45 46 //5.json形式の文字列をオブジェクトにし、キーを指定して値を表示 47 //キーを指定して値(/www.json-generator.com/api/json/)を表示 48 var data3 = JSON.parse(data2); 49 $("#out5").html(data3["judge2"]); 50 51 //6. failは、通信に失敗したときに実行される 52 }).fail(function (jqXHR, textStatus, errorThrown) { 53 $("#out1").html(jqXHR.status); //jqXHR.statusを表示 54 $("#out2").html(textStatus); //textStatusを表示 55 $("#out3").html(errorThrown); //errorThrownを表示 56 57 //7. always は 成功、失敗に関わらず実行 58 59 }).always(function () { 60 $("#out6").html("complete"); //表示3 61 62 }); 63 64 }); 65 });
現状(変更ボタン押下時)
javascript
1 $(function () { 2 3 document.getElementById("change").addEventListener("click", function () { 4 5 var poly = document.getElementById("myPoly"); // 多角形(ポリゴン) 6 poly.setAttribute("fill", "#00ff00"); // 緑色で塗りつぶす 7 poly.setAttribute("stroke", "blue"); // 青色の線にする 8 }, true); 9 10 });
★のsvg
html
1<h6 id="sample">sample</h6> 2<p>jqXHR.statusを表示:<span id="out1"></span></p> 3<p>textStatusを表示:<span id="out2"></span></p> 4<p>errorThrownを表示:<span id="out3"></span></p> 5<p>表示1(out4):<span id="out4"></span></p> 6<p>表示2(out5):<span id="out5"></span></p> 7<p>表示3(out6):<span id="out6"></span></p> 8 9<form> 10 <input type="button" id="change" value="変更"> 11 </form> 12 <svg> 13 <polygon id="myPoly" fill="#FFF000" stroke="#FF0000" points="72.278,58.394 78.338,91.04 48.74,75.993 19.565,91.844 24.729,59.045 0.639,36.196 33.428,30.972 47.715,1 62.814,30.57 95.734,34.895 " /> 14 </svg>
svgのidとjsonで取得したkeyとvalueを結びつけるところ?で詰まっています。そもそもその前にやることがありますでしょうか。
ご教授をお願いいたします。
サーバサイドのコードがさっぱり
c#
1[HttpGet] 2 public ActionResult AjaxTest() 3 { 4 if (Request.IsAjaxRequest()) 5 { 6 7 //ここに書く処理が整理できない 8 } 9 return Content("Ajax通信以外のアクセスはできません。"); 10 } 11 12 13 14 15 }
回答1件
あなたの回答
tips
プレビュー