前提・実現したいこと
javascriptでデータベースから取得したデータをgrobal変数に格納して、別のjsファイルで読み込む処理を実装しています。
phpでechoした内容をjson.Parseしてローカル変数に格納し、setterを呼んでグローバル変数に格納したいのですが
グローバル変数の内容が変わりません。
phpのselect処理と結果取り出しまでは正しく動作しているので、グローバル変数を正しく参照出来ていないのだと思います。
javascriptでグローバル変数を参照する際は以下のコードでは不十分なのでしょうか、初歩的な質問にはなりますがご回答頂けると幸いです。
よろしくお願いします。
該当のソースコード
javascript
1var tripMembers = {}; //連想配列 2 3function getTripMembers() { //getter 4 return this.tripMembers; 5} 6 7function setTripMembers(data) { //setter 8 this.tripMembers = data; 9} 10 11function getPlanningInfo() { 12 selectMember(); 13 14 console.log("チェック"); 15 console.log(getTripMembers()); //出力結果 "{}"; (初期値のまま?) 16 17} 18 19 20function selectMember() { 21 $.ajax({ 22 type:'POST', 23 url: "./dao/tripMemberSELECT.php", 24 data:{ 25 'trip_id':localStorage.getItem("trip_id") 26 },//実際はcookie,sessionから所得する可能性あり 27 }).done( (data) => { 28 if(data=="ERR") { 29 console.log("DBError"); 30 return "DBError"; 31 }else { 32 console.log(data); 33 var trip_mem = JSON.parse(data); //phpにアクセスし、dataをjsonParseするところまでは正しく動作。 34 console.log(trip_mem); 35 /* 出力結果 36 {"0":{"name":"田中","budget":"50000"}, 37 "1":{"name":"斎藤","budget":"60000"}, 38 "2":{"name":"中村","budget":"70000"}} 39 */ 40 setTripMembers(trip_mem); 41 } 42 }) 43 // 失敗 44 .fail( (data) => { 45 console.log(data); 46 }) 47 .always( (data) => { 48 }); 49 50}
試したこと
getter、setterの this.tripMembers; を grobalthis.tripMembers; に変えて実行してみましたが、結果は変わりませんでした。
また、window.tripMembers; でも同様に結果は変わりませんでした。
回答2件
あなたの回答
tips
プレビュー