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

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

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

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

589閲覧

JSの配列データをPHPに渡して利用したい

tarow

総合スコア19

PHP

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/02/26 08:28

JSの配列データをPHPに渡したいと考えております。

下記のようなJSの配列データがありこちらをPHPに受け渡し、1つづつPHPのforeachで取り出したいと考えております。

key = ["110", "111", "112", "113", "114"]; // JS側ではconsole.log(key[0])で110が取れていることは確認済みです

PHP側での取り出しに際し、いろいろ試したのですが現状でまだうまく取得ができておりません。

<?php $script = '['.'<script>document.write(key);</script>'.']'; foreach ($script as $value){ echo $value. '<br/>'; // 値を取り出せない } ?>

知りたいこと
・JSの配列データをPHPで使用する方法を教えて頂きたいです
・このケースの場合、PHP側でjson_decodeはする必要はありますでしょうか

// echo $scriptの結果 [110,111,112,113,114]

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

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

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

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

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

m.ts10806

2020/02/26 09:30

なぜそうしたいのか、大目的は何なのか書かれないと的確なアドバイスにはならないと思います。 本当にJavaScript,PHPは両方必要なのか?とか、要件もっと詰める必要があると思います。
tarow

2020/02/26 12:56 編集

ご指摘ありがとうございます。 現在の現状の環境をもう少し説明させてください。 環境説明 ①WordPressで作られたサイト上に複数の投稿データがある ②複数の投稿データに対してAJAXを使った絞り込み検索をする為、一度WordPressの投稿データをREST APIからJSON形式で取得 ③投稿の一覧を表示&絞り込み検索による一覧のフィルタリング ④各投稿の一覧にはお気に入りボタンがついており、ボタンを押すとその投稿データのpost IDをLocal storageに保存ができる ⑤その後、お気に入りページにアクセスし、④で保存をした投稿データを閲覧できる やりたかったこと 上記の⑤の箇所になり、今回Local storageで保存をしたpost ID情報をPHP(wordpress)に渡し、 post IDから保存した投稿データのリストを表示させたかった 勘違いをしていたこと ・Local storageに保存してあるpost IDから投稿データを取得するには、  サーバーにデータを送信しリクエストとして投稿データを送ってもらう必要があるがその処理が抜けていた 上記を踏まえ対応しようと思っていること 案1:④でLocal storageに保存をする際、post ID意外に必要な情報を取得し、⑤ではJSでの処理で完結させる 案2:通常、お気に入りページに移動する為のリンクはホームページのメニュの中にあるが、そのボタンの要素に    常にLocal storage内のデータをセットしておき、ユーザーがクリックしたタイミングでgetでサーバーに送信する 案3:お気に入りページ内で、XMLHttpRequest()を使用して、サーバー側にLocal storage内のデータを送りリクエストをもらう    (この考えはできそうでしょうか。)    宜しくお願い致します。
m.ts10806

2020/02/26 21:32

質問は編集できます。 要件にもなる部分ですし、質問本文に記載願います。
m.ts10806

2020/02/26 21:34

>WordPressで作られたサイト上に タグに追加必要に思います。
guest

回答2

0

質問の意図を聞き出したいため、かんたんな図を起こしました。
イメージ説明
どこのフェーズの話をしているのでしょうか。
この図は、上から下の方に向かって時間が推移していく中で、
どこでどんな処理をしているのかを表したものですが。

投稿2020/02/26 09:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

tarow

2020/02/26 13:52 編集

とてもイメージしやすいフロー図までご用意頂きありがとうございます。 私の質問がどの段階での処理かはm.ts10806さんへの回答として記載をしましたが、 私の間違いとしては、フロー図の右側から2番目の箇所から、PHPにリクエストを出さずにPHPからのリクエストを待っていたような勘違いだと思います。
guest

0

ベストアンサー

<?php

$script = '['.'<script>document.write(key);</script>'.']';

まったく見当違いのことをやっていると思います。
その方法ではjsからphpには絶対にデータは渡せません

投稿2020/02/26 08:31

yambejp

総合スコア114769

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

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

yambejp

2020/02/26 08:38 編集

jsが実行されるときにはもうphpの処理は終わっていますので 「渡す」の意図がわかりません。 あえて言えばphpでapi組んでajaxで渡して戻り値を jsで展開するとかでしょうか・・・
tarow

2020/02/26 08:39 編集

ご回答を頂きありがとうございます。 それはPHPはサーバサイドだからということだからでしょうか。 もう少し教えていただけるとありがたいです。 実は、このデータはLocal Storageにデータが格納されているのですがこちらのデータをPHPでは取り出せないのでしょうか。
yambejp

2020/02/26 08:41

せめてクッキーならサーバー=ブラウザ間でやり取りがあります 例えばgetで渡してはだめなんでしょうか?
tarow

2020/02/26 08:53

ご回答を頂き誠にありがとうございます。 今回、WEBサイトにお気に入りページの登録機能の実装を考えており、クッキーよりLocal storageの方が良さそうだったので使うことにしました。 お気に入りページへはサイト内でページ迂回をした後に行く可能性があるのですが、その場合でもgetでどこかにデータを送信できるのでしょうか。 PHPへの受け渡しが難しいようであればクッキーを検討してみようと思います。
yambejp

2020/02/26 09:06

> getでどこかにデータを送信 結局apiを自分でつくっておいて、ajaxで渡します でも渡したからと言って、php側のforeachで回すのはおかしな話で 普通にlocalStorageのデータなら、そのデータをjsで処理すればいいという話です
tarow

2020/02/26 09:33

ご指摘を頂きありがとうございます。 Local storageのデータですが、こちらはwordpressのpost IDを保存しており、foreachで使うことができると、post IDの紐付けから対応する投稿データや画像データなどが取得できる仕組みで考えておりました。 Local storageにデータを登録する時点で、post ID以外の情報を一緒に保存すればいいかとも考えましたが、複数の情報をpost IDごとに保存する方法がわからず今回の方法を検討することにしました。
yambejp

2020/02/26 09:42

所定の箇所に配列のデータを表示するだけならこれでよくないですか? <script> window.addEventListener('DOMContentLoaded', ()=>{ key = ["110", "111", "112", "113", "114"]; var v=document.querySelector('#view'); key.forEach(x=>{ v.appendChild(document.createTextNode(x)); v.appendChild(document.createElement("br")); }); }); </script> <div id="view"></div>
tarow

2020/02/26 13:49 編集

ご指摘をいただきありがとうございます。 すみません、Local storageに保存をした値をJSで取り出していくことは現状でできているのですが、 Local storageに保存する際に、valueの値として1回のクリックで複数の値を格納し、お気に入りページ内でデータをJSで取りだすみたいなこともできるでしょうか。 尚、下記は現状で使用しているデータとHTMLタグの参考となります。 Jsonデータ product = [ { id: 101; url: http://サイトのURL img: http://画像ファイルのpath title: ‘こんにちは’; }, { id: 102; url: http://サイトのURL img: http://画像ファイルのpath title: ‘こんにちは’; }, ….. ] HTML <input type=“button” v-bind:value="[product.id]" class="heart">  // value= 101 <input type=“button” v-bind:value="[product.id]" class="heart"> // value= 102 // 可能であればvalue値にJson内の1グループ(id、url、img、title)単位で保存をしたいです。 …
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問