いつもお世話になっております。
monacaとニフクラ mobile backendを使ってアプリを作成しているのですが、取得した値(place_id
)がundefind
になる時があります。
私のソースコードがいけないのか、monacaがいけないのか判断がつかず…
以下が当該のソースコードです。
事前にDBにplace_id
が1~5の場所が登録してあり、ランダムで場所を取得し、取得済み(visited_place_id
)として別のテーブルに(配列で)保存するという挙動になります。
html
1<!DOCTYPE HTML> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 6 <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 7 <link rel="stylesheet" href="components/loader.css"> 8 <link rel="stylesheet" href="css/style.css"> 9 <script src="components/loader.js"></script> 10 <script src="js/ncmb-2.1.3.min.js"></script> 11 <script src="js/custom.js"></script> 12 <script> 13 $(function() 14 { 15 //mBaaSの初期化 16 var application_key = "XXXXXXX"; 17 var client_key = "XXXXXXX"; 18 var ncmb = new NCMB(application_key, client_key); 19 var place_id; 20 var user_obj_id; 21 var visited_place_id; 22 23 $('#save_id').on('click', function() 24 { 25 //userのobjectIdを取得する 26 var user = ncmb.User.getCurrentUser(); 27 user_obj_id = user["objectId"]; 28 29 //場所のidを取得する 30 var Coordinate = ncmb.DataStore("Coordinate"); 31 Coordinate.fetchAll() 32 .then(function(results){ 33 place_id = results[Math.floor(Math.random() * 4)].place_id; 34 console.log("place_id_1 : " + place_id); 35 return place_id; 36 }) 37 .catch(function(err){ 38 alert("place_idとれなかったよ"); 39 }); 40 41 //visited_place_idにplace_idを追加する 42 var visited = ncmb.DataStore("Visited"); 43 visited.equalTo("user_objectId", user_obj_id) 44 .fetchAll() 45 .then(function(results){ 46 var visited_place_id = results[0].visited_place_id; 47 visited_place_id.push(place_id); 48 results[0].set("visited_place_id", visited_place_id) 49 .update() 50 .then(function() 51 { 52 alert("更新完了!"); 53 location.href = "./visited_list.html"; 54 }) 55 .catch(function(err) 56 { 57 alert("送信できんかった\n" + err); 58 }) 59 return false; 60 }) 61 .catch(function(err){ 62 console.log(err); 63 }); 64 return false; 65 }); 66 67 68 }); 69 </script> 70</head> 71<body> 72 <p> 73 ここはhome.htmlです 74 </p> 75 <form> 76 <input type="submit" id="save_id" value="idを保存する!" /> 77 <!-- <input type="submit" id="logout" value="ログアウト" /> --> 78 </form> 79</body> 80</html>
初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/17 19:39
2018/01/17 19:44
退会済みユーザー
2018/01/17 19:47
2018/01/17 23:57
2018/01/18 01:32