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

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

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

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2871閲覧

php→javascriptに変数を挿入する方法を教えてください...【chart.jsでレーダーグラフ】

katmax

総合スコア10

WordPress

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/11 11:21

編集2018/12/11 11:46

前提・実現したいこと

chart.jsでレーダーグラフを実装しています。
下記のデータをphp(wordpress)で取得し、

php

1<?php the_field('data1'); ?> 2<?php the_field('data2'); ?> 3<?php the_field('data3'); ?> 4<?php the_field('data4'); ?> 5<?php the_field('data5'); ?> 6<?php the_field('data6'); ?> 7<?php the_field('data7'); ?> 8<?php the_field('data8'); ?>

下記の「ここにdata*いれたい」に変数として入れたく思っております。

javascript

1<canvas id="Chart" width="400" height="400"></canvas> 2<script> 3var ctx = document.getElementById("Chart"); 4 5var myChart = new Chart(ctx, { 6 type: 'radar', 7 data: { 8 labels: ["a", "b", "c", "d", "e", "f", "g", "h"], 9 datasets: [{ 10 label: '見出し', 11 backgroundColor: "rgba(75, 192, 192, 0.2)", 12 borderColor: "rgba(75, 192, 192, 1)", 13 data: [ ここにdata1をいれたい ,ここにdata2をいれたい , ここにdata2をいれたい, ここにdata3をいれたい, ここにdata4をいれたい, ここにdata5をいれたい, ここにdata6をいれたい, ここにdata7をいれたい, ここにdata8をいれたい], 14 }], 15 },/*data*/ 16 options: { 17 scale: { 18 ticks: { 19 beginAtZero: true, 20 max: 30, 21 min: 0, 22 23 } 24 } 25 },/*option*/ 26}); 27 28</script> 29 30

ただ、下記のような記載だと、グラフにうまく表示されません。

php

1data: [ <?php the_field('data1'); ?> ,<?php the_field('data2'); ?> , <?php the_field('data3'); ?>, <?php the_field('data4'); ?>, <?php the_field('data5'); ?>, <?php the_field('data6'); ?>, <?php the_field('data7'); ?>, <?php the_field('data1'); ?>,

数値自体は、ソースとして表示はされるが、chart.js等のライブラリ処理を噛ませていないからなのか、
記述の仕方がいけないのか、エンジニアリングとして大変初歩的にはなるかと思いますが、変数の代入の仕方をアドバイスいただければ幸いです。
質問が稚拙で大変恐縮でございます。

よろしくお願い申し上げます。

追記

STEP1 このように<?php〜〜>タグを挿入すると、値は帰ってきており(<?php the_field('データ1'); ?>というコードに対して70という数字が帰ってきている)
イメージ説明
STEP2下記のようにソース(ブラウザでソースを表示をしているスクショ)には値が表示される
イメージ説明
STEP3しかしグラフには値が反映、表示されていない
イメージ説明

=要は、javascriptの変数としていれたphpの値が、javascriptの処理を通っていない、というかと思っております。

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

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

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

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

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

kei344

2018/12/11 11:56

プラグイン/ライブラリは似た名前のものもあるため、取得した場所のURLを質問文に追記ください。(URLにはリンクを張ることができます)
katmax

2018/12/11 12:00

ご回答誠にありがとうございます、こちらのライブラリでございます
katmax

2018/12/11 12:01

上記ライブラリ内の、レーダーチャートを使っております。
kei344

2018/12/11 12:06

ここは「質問への追記・修正の依頼」ですので、「回答」ではありません。質問本文は編集することが可能なので、その依頼をしています。
guest

回答1

0

<?php the_field('data1'); ?>

これはなんですか?

PHPはHTMLモードとPHPスクリプト実行モードを切り替えながらプログラミングして、効率良くHTMLを作るのが最も得意な言語です。
(PHPにモードという正式な用語はなくて単なる造語ですがそんなもんだと考えて下さい)
PHP タグ - 公式マニュアル

<?php ?>の部分はPHPの構文を解析を実行を明示する為のタグです。
つまり、the_field('data1');の部分を愚直に実行しようとするだけ。
このthe_fieldは関数だと思いますが、echo $foo;みたいな文字列を出力する命令はありますか?
もし無ければ何も表示されません。

もしthe_field関数の中身がreturn $foo;みたいに何かしらの値を返す関数であれば、
<?php ?>ではなく、<?= the_field('data1') ?>を利用してみてください。
これは<?php echo the_field('data1'); ?>の短縮ですので値をHTML文字列としてその場に出力してくれるはずです。


【追記部分への回答】
PHPからHTMLファイルへの出力は上手くいっており、ついでに画像ですね。
グラフが描画されない理由に関してですが、

スクショの下部分、options→scale→ticks→maxの値が30で、dataの各要素が20とか30とかなのに、突如70が出現して描画できなくなってるだけなのでは?
いや、chart.jsの事は全然分からないのでヤマ勘ですが、一度Maxの値を30から70に引き上げて見てはどうでしょうか?

投稿2018/12/11 11:28

編集2018/12/11 12:12
miyabi-sun

総合スコア21158

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

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

m.ts10806

2018/12/11 11:38

WordPressらしいのでそちらの仕様要確認ですね。
katmax

2018/12/11 11:46

みなさまご回答誠にありがとうございます。追記いたしましたので、改めてご教示いただければ幸いです。 レベルの低い質問で大変恐縮でございます。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問