teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

動いたコードをメモ代わりに追記

2016/12/31 13:15

投稿

退会済みユーザー
answer CHANGED
@@ -15,4 +15,192 @@
15
15
  [https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97](https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97)
16
16
 
17
17
  **同じ問題で困っていた人のトピック**
18
- [https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)
18
+ [https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)
19
+
20
+ ###追記
21
+ ようやく動いた。
22
+ ####functions.php
23
+ ```PHP
24
+ function add_my_ajaxurl() {
25
+ ?>
26
+ <script>
27
+ var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>';
28
+ </script>
29
+ <?php
30
+ }
31
+ add_action( 'wp_head', 'add_my_ajaxurl', 1 );
32
+
33
+ function GetMyToDo(){
34
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) {
35
+ while ( bp_members() ) {
36
+ bp_the_member();
37
+ global $wpdb,$bp;
38
+ $MyUserID = $bp->loggedin_user->id;
39
+ $MyToDo = $wpdb->get_results("
40
+ SELECT meta_value
41
+ FROM $wpdb->usermeta
42
+ WHERE user_id = $MyUserID
43
+ AND meta_key = 'ToDoList'
44
+ ", ARRAY_A );
45
+
46
+ foreach($MyToDo as $item) {
47
+ $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL";
48
+ }
49
+
50
+ $MyToDoList = join(",",$MyToDoList);
51
+ echo $MyToDoList;
52
+ die();
53
+ }
54
+ }
55
+ }
56
+ add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' );
57
+
58
+ function SaveMyToDo(){
59
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
60
+ while ( bp_members() ){
61
+ bp_the_member();
62
+ global $wpdb,$bp;
63
+ $MyUserID = $bp->loggedin_user->id;
64
+ $memo = filter_input(INPUT_POST, 'memo');
65
+ $wpdb->insert($wpdb->usermeta,
66
+ array(
67
+ 'user_id' => $MyUserID,
68
+ 'meta_key' => 'ToDoList',
69
+ 'meta_value' => $memo
70
+ ),
71
+ array(
72
+ '%d',
73
+ '%s',
74
+ '%s'
75
+ )
76
+ );
77
+ }
78
+ }
79
+ }
80
+ add_action( 'wp_ajax_SaveMyToDo', 'SaveMyToDo' );
81
+
82
+ function DeleteMyToDo(){
83
+ if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){
84
+ while ( bp_members() ){
85
+ bp_the_member();
86
+ global $wpdb,$bp;
87
+ $MyUserID = $bp->loggedin_user->id;
88
+ $memo = filter_input(INPUT_POST, 'memo');
89
+ var_dump($MyUserID);
90
+ var_dump($memo);
91
+ $wpdb->delete( $wpdb->usermeta,
92
+ array( 'user_id' => $MyUserID,
93
+ 'meta_key' => 'ToDoList',
94
+ 'meta_value' => $memo
95
+ ),
96
+ array(
97
+ '%d',
98
+ '%s',
99
+ '%s'
100
+ )
101
+ );
102
+ }
103
+ }
104
+ }
105
+ add_action( 'wp_ajax_DeleteMyToDo', 'DeleteMyToDo' );
106
+ ```
107
+ ####index.php
108
+ ```PHP
109
+ <?php
110
+ wp_head();
111
+ ?>
112
+ <style type="text/css">
113
+ #container{
114
+ margin: 0 auto;
115
+ width: 60%;
116
+ }
117
+ #memo{
118
+ width: 100%;
119
+ }
120
+ .content{
121
+ float: left;
122
+ width: 90%;
123
+ word-wrap: break-word;
124
+ }
125
+ h6{
126
+ color: red;
127
+ }
128
+ li{
129
+ list-style: decimal;
130
+ }
131
+ .MainWelcome{
132
+ }
133
+ .ExplainToDo{
134
+ text-align: center;
135
+ }
136
+ </style>
137
+ <script type="text/javascript">
138
+ jQuery(function() {
139
+ function MakeLi(){
140
+ jQuery.ajax({
141
+ type: 'POST',
142
+ url: ajaxurl,
143
+ data: { 'action' : 'GetMyToDo',},
144
+ success: function( response ){
145
+ var MyToDoList = response;
146
+ var MyToDo = MyToDoList.split(",");
147
+ jQuery.each(MyToDo, function() {
148
+ jQuery(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>");
149
+ });
150
+ }
151
+ });
152
+ }
153
+ MakeLi();
154
+
155
+ jQuery('#save').on('click', function(){
156
+ var memo = jQuery('#memo').val();
157
+ if(!memo) return;
158
+ jQuery.ajax({
159
+ type: 'POST',
160
+ url: ajaxurl,
161
+ data: {
162
+ 'action' : 'SaveMyToDo',
163
+ 'memo' : memo
164
+ },
165
+ success: function( response ){
166
+ jQuery(".ToDo_Ul").prepend("<li class='todo'>" + memo + "</li>");
167
+ jQuery('#memo').val('');
168
+ }
169
+ });
170
+ });
171
+
172
+ jQuery('.ToDo_Ul').on('click', '.todo', function(){
173
+ var item = this;
174
+ jQuery.ajax({
175
+ type: 'POST',
176
+ url: ajaxurl,
177
+ data: {
178
+ 'action' : 'DeleteMyToDo',
179
+ 'memo' : item.innerHTML
180
+ },
181
+ success: function( response ){
182
+ item.remove();
183
+ }
184
+ });
185
+ });
186
+ });
187
+ </script>
188
+
189
+
190
+ <div id="container">
191
+ <h2 class="ExplainToDo">続くToDoリスト</h2>
192
+ <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6>
193
+ <form action="" method="post">
194
+ <textarea id="memo" name="memo"></textarea>
195
+ <p>
196
+ <input type="button" id="save" value="保存">
197
+ <input type="button" id="clear" value="全消去">
198
+ </p>
199
+ </form>
200
+ <ul class="ToDo_Ul">
201
+
202
+ </ul>
203
+ </div>
204
+
205
+ <?php wp_footer(); ?>
206
+ ```

2

更に参考URL追記

2016/12/31 13:14

投稿

退会済みユーザー
answer CHANGED
@@ -13,3 +13,6 @@
13
13
 
14
14
  **「WordPressのループ」に関する参考URL**
15
15
  [https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97](https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97)
16
+
17
+ **同じ問題で困っていた人のトピック**
18
+ [https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/](https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/)

1

参考URL追記

2016/12/30 06:18

投稿

退会済みユーザー
answer CHANGED
@@ -3,4 +3,13 @@
3
3
  ```PHP
4
4
  $MyUserID = bp_get_member_user_id();
5
5
  ?><pre><?php var_dump($MyUserID); ?></pre><?php
6
- ```
6
+ ```
7
+
8
+ ###追記
9
+ **「BuddyPressのループ」に関する参考URL**
10
+ [https://codex.buddypress.org/developer/loops-reference/](https://codex.buddypress.org/developer/loops-reference/)
11
+ [https://codex.buddypress.org/developer/loops-reference/the-members-loop/](https://codex.buddypress.org/developer/loops-reference/the-members-loop/)
12
+ [https://codex.buddypress.org/developer/loops-reference/the-profile-fields-loop-bp_has_profile/](https://codex.buddypress.org/developer/loops-reference/the-profile-fields-loop-bp_has_profile/)
13
+
14
+ **「WordPressのループ」に関する参考URL**
15
+ [https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97](https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97)