質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4538閲覧

wordpressでのデータベースの操作のエラー

SoraSue

総合スコア30

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/12/30 04:49

編集2016/12/31 09:01

###前提・実現したいこと
現在、wordpressでプラグイン"BuddyPress"を使って、SNS制ToDoリストのwebアプリを作っています。ToDoリストでユーザーごとにToDoの表示・追加・削除をできるようにしたいです。今は、wordpressが作ったwp_usermetaテーブルの「user_idカラム」に「ToDoを作成したユーザーのID」を、「meta_keyカラム」に「"ToDoList"」を、「meta_valueカラム」に「ユーザーが入力したToDoリストの内容」を保存するようにしようと考えています。
###発生している問題・エラーメッセージ
以下のようなエラーが出ました。

WordPress データベースエラー: [] SELECT id, user_id, field_id, value, last_updated FROM wp_bp_xprofile_data WHERE field_id = 1 AND user_id IN (1)

###該当のソースコード

php

1<?php 2ini_set( 'display_errors', 1 ); 3global $wpdb; 4$wpdb->show_errors(); 5$wpdb->print_error(); 6$MyUserID = bp_get_member_user_id(); 7$memo = filter_input(INPUT_POST,'memo'); 8?> 9<!doctype html> 10<html> 11 <head> 12 <meta charset="UTF-8"> 13 <title></title> 14 <style type="text/css"> 15 #container{ 16 margin: 0 auto; 17 width: 60%; 18 } 19 #memo{ 20 width: 100%; 21 22 } 23 .content{ 24 float: left; 25 width: 90%; 26 word-wrap: break-word; 27 28 } 29 30 h6{ 31 color: red; 32 } 33 li{ 34 list-style: decimal; 35 } 36 .MainWelcome{ 37 38 39 } 40 .ExplainToDo{ 41 text-align: center; 42 } 43 44 45 </style> 46 </head> 47 <body> 48 49 50 <div id="container"> 51 <h2 class="ExplainToDo">続くToDoリスト</h4> 52 <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6> 53 <textarea id="memo" name="memo"></textarea> 54 <p> 55 <input type="button" id="save" value="保存"> 56 <input type="button" id="clear" value="全消去"> 57 </p> 58 <ul class="ToDo_Ul"> 59 60 </ul> 61 </div> 62 <script type="text/javascript" src=jquery1.10.1.min.js></script> 63 <script type="text/javascript" > 64 $(function () { 65 function MakeLi(){ 66 <?php 67 $MyToDo = $wpdb->get_results(" 68 SELECT meta_value 69 FROM $wpdb->usermeta 70 WHERE user_id = $MyUserID 71 AND meta_key = ‘ToDoList’ 72 ", ARRAY_A ); 73 $MyToDoList = join(",",$MyToDo->meta_value); 74 75 76 ?> 77 var MyToDoList = "<?= $MyToDoList?>"; 78 var MyToDo = MyToDoList.split(","); 79 $.each(MyToDo, function() { 80 $(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>"); 81 }); 82 } 83 MakeLi(); 84 85 $('#save').click(function(){ 86 var memo = $('#memo').val(); 87 if(!memo) return; 88 <?php 89 90 $wpdb->insert($wpdb->usermeta, 91 array( 92 'user_id' => $MyUserID, 93 'meta_key' => 'ToDoList', 94 'meta_value' => $memo, 95 ), 96 array( 97 '%d', '%s', '%s' 98 ) 99 ); 100 ?> 101 MakeLi(); 102 $('memo').val(''); 103 104 } 105 106 $('.ToDo_Ul').on('click', '.todo', function(){ 107 <?php 108 $wpdb->delete( $wpdb->usermeta, 109 array( 'user_id' => $MyUserID, 110 'meta_key' => 'ToDoList', 111 'meta_value' => this 112 ), 113 array( '%d', '%s', '%s') ); 114 ?> 115 MakeLi(); 116 }); 117 118 } 119 </script> 120</body> 121</html> 122

###試したこと
エラーにあったように、

php

1$wpdb->get_results( 2 "SELECT id, user_id, field_id, value, last_updated FROM $wpdb->bp_xprofile_data WHERE field_id = 1 AND user_id IN (1)" 3 );

というのを追加してみましたが、エラーが出ました。

WordPress データベースエラー: [] SELECT id, user_id, field_id, value, last_updated FROM wp_bp_xprofile_data WHERE field_id = 1 AND user_id IN (1) Notice: Undefined property: wpdb::$bp_xprofile_data in フォルダ名/wordpress/wp-includes/wp-db.php on line 684 WordPress データベースエラー: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE field_id = 1 AND user_id IN (1)' at line 1] SELECT id, user_id, field_id, value, last_updated FROM WHERE field_id = 1 AND user_id IN (1)

###補足情報
現在、ローカル開発環境でサイトを作っているので、サイトをそのまま見せることはできません。曖昧な部分が多いと思いますが、宜しくお願いします。

###修正2016/12/31 16:56
Ajaxを使ってコードを書き直してみました。また、ファイルをjsとphpに分けました。今まで出ていたデータベースエラーはなくなりましたが、まだ
データベースからデータを取得・削除したり、データベースに入力されたデータを追加したりできません。以下がそのコードです。

javascript

1<!DOCTYPE HTML> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 #container{ 8 margin: 0 auto; 9 width: 60%; 10 } 11 #memo{ 12 width: 100%; 13 14 } 15 .content{ 16 float: left; 17 width: 90%; 18 word-wrap: break-word; 19 20 } 21 22 h6{ 23 color: red; 24 } 25 li{ 26 list-style: decimal; 27 } 28 .MainWelcome{ 29 30 31 } 32 .ExplainToDo{ 33 text-align: center; 34 } 35 36 37 </style> 38 <script type="text/javascript" src=jquery1.10.1.min.js></script> 39 <script type="text/javascript" > 40 41 (function () { 42 function MakeLi(){ 43 44 45 46 $.ajax({ 47 type: 'POST', 48 url: ajaxurl, 49 data: { 50 'action' : 'GetMyToDo', 51 52 }, 53 success: function( response ){ 54 var MyToDoList = response; 55 var MyToDo = MyToDoList.split(","); 56 $.each(MyToDo, function() { 57 $(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>"); 58 }); 59 }, 60 61 62 }); 63 64 65 }; 66 MakeLi(); 67 68 $('#save').click(function(){ 69 var memo = $('#memo').val(); 70 if(!memo) return; 71 $.ajax({ 72 type: 'POST', 73 url: ajaxurl, 74 data: { 75 'action' : 'SaveMyToDo', 76 77 }, 78 success: function( response ){ 79 } 80 81 82 }); 83 MakeLi(); 84 $('memo').val(''); 85 86 }); 87 88 $('.ToDo_Ul').on('click', '.todo', function(){ 89 $.ajax({ 90 type: 'POST', 91 url: ajaxurl, 92 data: { 93 'action' : 'DeleteMyToDo', 94 95 }, 96 success: function( response ){ 97 } 98 99 100 }); 101 MakeLi(); 102 }); 103 104 }()); 105 </script> 106 </head> 107 <body> 108 <div id="container"> 109 <h2 class="ExplainToDo">続くToDoリスト</h2> 110 <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6> 111 <form action="bp-custom.php" method="post"> 112 <textarea id="memo" name="memo"></textarea> 113 <p> 114 <input type="button" id="save" value="保存"> 115 <input type="button" id="clear" value="全消去"> 116 </p> 117 </form> 118 <ul class="ToDo_Ul"> 119 120 </ul> 121 </div> 122 </body> 123</html>

php

1function add_my_ajaxurl() { 2?> 3 <script> 4 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>'; 5 </script> 6<?php 7} 8add_action( 'wp_head', 'add_my_ajaxurl', 1 ); 9 10function GetMyToDo(){ 11 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 12 while ( bp_members() ) : bp_the_member(); 13 14 global $wpdb,$bp; 15 $MyUserID = $bp->loggedin_user->id; 16 $MyToDo = $wpdb->get_results(" 17 SELECT meta_value 18 FROM $wpdb->usermeta 19 WHERE user_id = '".$MyUserID."' 20 AND meta_key = 'ToDoList' 21 ", ARRAY_A ); 22 $MyToDoList = join(",",$MyToDo->meta_value); 23 echo $MyToDoList; 24 die(); 25 endwhile ; 26 endif; 27} 28add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' ); 29 30 31function SaveMyToDo(){ 32 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 33 while ( bp_members() ) : bp_the_member(); 34 35 global $wpdb,$bp; 36 $MyUserID = $bp->loggedin_user->id; 37 $memo = filter_input(INPUT_POST, 'memo'); 38 $wpdb->insert($wpdb->usermeta, 39 array( 40 'user_id' => '".$MyUserID."', 41 'meta_key' => 'ToDoList', 42 'meta_value' => '".$memo."' 43 ), 44 array( 45 '%d', 46 '%s', 47 '%s' 48 ) 49 ); 50 die(); 51 endwhile ; 52 endif; 53} 54add_action( 'wp_ajax_SaveMyToDo', 'SaveMyToDo' ); 55 56 57function DeleteMyToDo(){ 58 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 59 while ( bp_members() ) : bp_the_member(); 60 global $wpdb,$bp; 61 $MyUserID = $bp->loggedin_user->id; 62 $wpdb->delete( $wpdb->usermeta, 63 array( 'user_id' => '".$MyUserID."', 64 'meta_key' => 'ToDoList', 65 'meta_value' => '".this."' 66 ), 67 array( '%d', '%s', '%s') ); 68 die(); 69 endwhile ; 70 endif; 71} 72add_action( 'wp_ajax_DeleteMyToDo', 'DeleteMyToDo' ); 73

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

下記部分を「クリック時に $wpdb->insert / $wpdb->delete を実行する」とお考えでしょうか。

JavaScript

1 2 $('#save').click(function(){ 3 var memo = $('#memo').val(); 4 if(!memo) return; 5 <?php 6 7 $wpdb->insert($wpdb->usermeta, 8 array( 9 'user_id' => $MyUserID, 10 'meta_key' => 'ToDoList', 11 'meta_value' => $memo, 12 ), 13 array('%d', '%s', '%s' 14 ) 15 ); 16 17 ?> 18 MakeLi(); 19 $('memo').val(''); 20 21 }); 22 23 $('.ToDo_Ul').on('click', '.todo', function(){ 24 <?php 25 $wpdb->delete( $wpdb->usermeta, 26 array( 'user_id' => $MyUserID, 27 'meta_key' => 'ToDoList', 28 'meta_value' => this 29 ), 30 array( '%d', '%s', '%s') ); 31 ?> 32 MakeLi(); 33 });

その場合誤りです。WordPressというより、PHPはブラウザからのアクセスで実行され、その結果をHTMLとしてブラウザに送ります。JavaScriptはそのブラウザ上で実行されるため、処理を混ぜるような書き方はできません。

WordPressでAjaxを使う方法は「wordpress ajax」で検索すれば下記のようなサイトが出てくるので、わかりやすいものを探されてはいかがでしょうか。

【WordPressでAjaxを使う方法の解説 | hijiriworld Web】
http://hijiriworld.com/web/wordpress-ajax/

【» wordpressで使ってみるajaxの基本】
http://unskilled.site/wordpressで使ってみるajaxの基本/

【WordPressでajaxを使う | FAIRWAY Engineer {Blog}】
http://dev.blog.fairway.ne.jp/wordpress-ajax/

投稿2016/12/30 16:14

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SoraSue

2016/12/31 08:26

わざわざURLまで教えてくださりありがとうございます! Ajaxについて調べてみました。 一度ファイルをajaxを使って書き換えてみたので、また上の質問の「修正」のところをご覧下さい。
kei344

2016/12/31 08:42

「うまくいきません」という文言には、情報がありません。 Ajaxで指定したな関数を呼び出し、そこからのレスポンスを正しく受け取れていますか? PHPの関数は変数部分を固定値に変えて、それ自身動きますか? それぞれの時点で変数を正しく取得できていますか? 機能は分割して少しずつ作成したほうがいいですよ。
guest

0

ベストアンサー

$MyUserIDに値は入ってますか?
bp_get_member_user_id()はループの中で使う必要のある関数ですが、ループの中で使われていますか?

PHP

1$MyUserID = bp_get_member_user_id(); 2?><pre><?php var_dump($MyUserID); ?></pre><?php

###追記
「BuddyPressのループ」に関する参考URL
https://codex.buddypress.org/developer/loops-reference/
https://codex.buddypress.org/developer/loops-reference/the-members-loop/
https://codex.buddypress.org/developer/loops-reference/the-profile-fields-loop-bp_has_profile/

「WordPressのループ」に関する参考URL
https://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97

同じ問題で困っていた人のトピック
https://buddypress.org/support/topic/bp_get_member_user_id-returns-false/

###追記
ようやく動いた。
####functions.php

PHP

1function add_my_ajaxurl() { 2?> 3 <script> 4 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>'; 5 </script> 6<?php 7} 8add_action( 'wp_head', 'add_my_ajaxurl', 1 ); 9 10function GetMyToDo(){ 11 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) { 12 while ( bp_members() ) { 13 bp_the_member(); 14 global $wpdb,$bp; 15 $MyUserID = $bp->loggedin_user->id; 16 $MyToDo = $wpdb->get_results(" 17 SELECT meta_value 18 FROM $wpdb->usermeta 19 WHERE user_id = $MyUserID 20 AND meta_key = 'ToDoList' 21 ", ARRAY_A ); 22 23 foreach($MyToDo as $item) { 24 $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL"; 25 } 26 27 $MyToDoList = join(",",$MyToDoList); 28 echo $MyToDoList; 29 die(); 30 } 31 } 32} 33add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' ); 34 35function SaveMyToDo(){ 36 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){ 37 while ( bp_members() ){ 38 bp_the_member(); 39 global $wpdb,$bp; 40 $MyUserID = $bp->loggedin_user->id; 41 $memo = filter_input(INPUT_POST, 'memo'); 42 $wpdb->insert($wpdb->usermeta, 43 array( 44 'user_id' => $MyUserID, 45 'meta_key' => 'ToDoList', 46 'meta_value' => $memo 47 ), 48 array( 49 '%d', 50 '%s', 51 '%s' 52 ) 53 ); 54 } 55 } 56} 57add_action( 'wp_ajax_SaveMyToDo', 'SaveMyToDo' ); 58 59function DeleteMyToDo(){ 60 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ){ 61 while ( bp_members() ){ 62 bp_the_member(); 63 global $wpdb,$bp; 64 $MyUserID = $bp->loggedin_user->id; 65 $memo = filter_input(INPUT_POST, 'memo'); 66 var_dump($MyUserID); 67 var_dump($memo); 68 $wpdb->delete( $wpdb->usermeta, 69 array( 'user_id' => $MyUserID, 70 'meta_key' => 'ToDoList', 71 'meta_value' => $memo 72 ), 73 array( 74 '%d', 75 '%s', 76 '%s' 77 ) 78 ); 79 } 80 } 81} 82add_action( 'wp_ajax_DeleteMyToDo', 'DeleteMyToDo' );

####index.php

PHP

1<?php 2 wp_head(); 3?> 4<style type="text/css"> 5 #container{ 6 margin: 0 auto; 7 width: 60%; 8 } 9 #memo{ 10 width: 100%; 11 } 12 .content{ 13 float: left; 14 width: 90%; 15 word-wrap: break-word; 16 } 17 h6{ 18 color: red; 19 } 20 li{ 21 list-style: decimal; 22 } 23 .MainWelcome{ 24 } 25 .ExplainToDo{ 26 text-align: center; 27 } 28</style> 29<script type="text/javascript"> 30jQuery(function() { 31 function MakeLi(){ 32 jQuery.ajax({ 33 type: 'POST', 34 url: ajaxurl, 35 data: { 'action' : 'GetMyToDo',}, 36 success: function( response ){ 37 var MyToDoList = response; 38 var MyToDo = MyToDoList.split(","); 39 jQuery.each(MyToDo, function() { 40 jQuery(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>"); 41 }); 42 } 43 }); 44 } 45 MakeLi(); 46 47 jQuery('#save').on('click', function(){ 48 var memo = jQuery('#memo').val(); 49 if(!memo) return; 50 jQuery.ajax({ 51 type: 'POST', 52 url: ajaxurl, 53 data: { 54 'action' : 'SaveMyToDo', 55 'memo' : memo 56 }, 57 success: function( response ){ 58 jQuery(".ToDo_Ul").prepend("<li class='todo'>" + memo + "</li>"); 59 jQuery('#memo').val(''); 60 } 61 }); 62 }); 63 64 jQuery('.ToDo_Ul').on('click', '.todo', function(){ 65 var item = this; 66 jQuery.ajax({ 67 type: 'POST', 68 url: ajaxurl, 69 data: { 70 'action' : 'DeleteMyToDo', 71 'memo' : item.innerHTML 72 }, 73 success: function( response ){ 74 item.remove(); 75 } 76 }); 77 }); 78}); 79</script> 80 81 82<div id="container"> 83 <h2 class="ExplainToDo">続くToDoリスト</h2> 84 <h6 class="ExplainToDo">*クリックするとそのタスクは消えます。</h6> 85 <form action="" method="post"> 86 <textarea id="memo" name="memo"></textarea> 87 <p> 88 <input type="button" id="save" value="保存"> 89 <input type="button" id="clear" value="全消去"> 90 </p> 91 </form> 92 <ul class="ToDo_Ul"> 93 94 </ul> 95</div> 96 97<?php wp_footer(); ?>

投稿2016/12/30 05:28

編集2016/12/31 13:15
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SoraSue

2016/12/30 05:50

 回答ありがとうございます!  <pre><?php var_dump($MyUserID); ?></pre> で確かめてみると、 bool(false) と表示されました。  おそらく、$MyUserIDをループの中で使えということだと思います。 僕のコードの中でループ処理がされているのは、jsの $.each(MyToDo, function() { $(".ToDo_Ul").prepend("<li class='todo'>" + this + "</li>"); }); の部分だけですが、この中で $MyUserID = bp_get_member_user_id(); を使うのでしょうか?
退会済みユーザー

退会済みユーザー

2016/12/30 06:00

「ループ」はこの場合は、「BuddyPressのループ」のことです。
SoraSue

2016/12/30 06:04

「BuddyPressのループ」とは、具体的にどういうことでしょうか?
退会済みユーザー

退会済みユーザー

2016/12/30 06:17

私自身はBuddyPressを使ったことがないので、的確な回答はできないのですが、参考URLのあたりを参照してみてください。後、WordPressを使う上での基本的な情報として「WordPressのループ」に関しても勉強しておくといいと思います。
SoraSue

2016/12/30 07:25

参考URLを読ませていただきました。 簡単なループの概念と、Members Loopというが必要ということはわかりました。 そこで、https://codex.buddypress.org/developer/loops-reference/the-members-loop/ を参照にループを書いていこうとしたのですが、どのコードを書いたらいいのかわかりません。 例えば、<?php if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : ?> などは書くべきでしょうが、 <div id="pag-top" class="pagination"> などはあくまで参考例だと思います。
退会済みユーザー

退会済みユーザー

2016/12/30 09:48

多分、`<?php if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : ?>`と`<?php while ( bp_members() ) : bp_the_member(); ?>`が肝心です。
SoraSue

2016/12/30 12:51

最後の<?php else: ?>や<?php endif; ?>も必要ですか? これらを</script>と</body>の間に書くとエラーになりました。
退会済みユーザー

退会済みユーザー

2016/12/30 13:07

当然、`if() :`に対しては`endif`、`while() :`に対して`endwhile`を書かないとエラーになります。この辺はPHPの基本的な構文ですから、わからないのであればPHP入門サイトを参照したほうがいいです。それから、BuddyPressのデフォルトテーマ「bp-default」のコードも参考にするといいと思います。BuddyPressの関数の基本的な使い方を理解するのに役立ちます。
SoraSue

2016/12/30 13:35

エラーは直りました。しかし、ToDoリストの画面が上下に2つ表示されるようになりました。 <?php endwhile ; ?>や、<?php else : ?>、<?php endif ; ?>は </script>や</body>、</html>などに対して、それぞれどんな上下関係で書いたらいいですか? 今は、</html>の後に<?php endwhile ; ?><?php else : ?><?php endif ; ?>の順番に書いています。
退会済みユーザー

退会済みユーザー

2016/12/30 13:42

言葉で言われてもわかりづらいので、コードは質問文に追記してください。
SoraSue

2016/12/30 13:58

すみません。質問文の「修正」のところに現在のコードと状況をまとめておきました。
退会済みユーザー

退会済みユーザー

2016/12/30 14:12

whileループを二回回っているため、二重に表示されているだけだと思いますから、whileの記述位置を修正してください。
SoraSue

2016/12/30 14:24

<script>の前にwhileループを書いたら直りました!ありがとうございます!
SoraSue

2016/12/30 14:28

元々の目的は、ユーザーごとにデータベースからToDoを表示、データベースにToDoを追加できるようにすることなのですが、それらはまだできません。なぜでしょうか?
退会済みユーザー

退会済みユーザー

2016/12/30 15:52

「なぜでしょうか?」と言われても「何かが間違っているのでしょう」としか答えようがないです。コードを見る感じ、Javascriptの中でPHPのコードを使おうとしているあたりにそもそも無理があるような気がします。Ajaxとか使う必要があるのでは?
SoraSue

2016/12/31 07:56

すみません。確かにそうですね。 Ajaxについて調べてみました。 Ajaxを使って書き換えたコードを質問の修正に記しておきます。
退会済みユーザー

退会済みユーザー

2016/12/31 09:12

各ボタンを押して対応する関数が呼び出されるかや、admin-ajax.phpが読み込まれているかなどは確認済みですか?
SoraSue

2016/12/31 14:54

わざわざコードまで書いていただきありがとうございます! mizさんの意見を参考に自分でもコードを幾つか直してみました。 データを保存・削除する機能をつけるのには成功したのですが、今まで作ったToDoを表示させる機能はできませんでした。 mizさんの機能と比較させていただいたところ、 $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL"; の部分がないことが原因とわかりました。 mizさんにはここまで本当にお世話になりました。とても感謝しています!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問