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

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

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

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

JavaScript

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

Q&A

解決済

1回答

2295閲覧

JavaScriptからphpに連想配列を渡したい

matsuo_basho

総合スコア88

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2021/08/19 06:06

編集2021/08/19 06:47

いつも大変お世話になっております。

表示についてお伺いしたいです。
こちらも初歩的な内容かと思われるのですが、、。

現在Vue CLIでフォームを作成し、
フォームデータをphp側に渡すようなシステムを作成しております、

フォームで作成(送信)されるデータは以下のような構造となります。

{ "test_A" : [ { "test_A_01" : "あああ", "test_A_02" : "いいい", "test_A_03" : "ううう" } ], "test_B" : [ { "test_B_01" : "あああ", "test_B_02" : "いいい", "test_B_03" : "ううう" } ] }

JSON.stringify にてJSON文字列化し、
phpに送信後、php側でjson_decode()をすれば大丈夫かなと思っていたのですが、
なぜかnullとなってしまいます。

以下の配列であれば、問題なくjson_decode()で処理ができ元通りとなったのですが、
連想配列の場合は何か特別な処理が必要になるのでしょうか?

※phpへは諸事情によりPOSTはできずGETで送る形になります。

[ [92, 88, 64, 86], [78, 92, 96, 81], [68, 56, 84, 70] ]

お詳しい方がいらっしゃいましたらご教授いただけますと幸いです。

それではどうぞ宜しくお願い致します。

ソースコード

ソースコード

javascript

1 2// store/index.js 3 4import { createStore } from 'vuex' 5 6export default createStore({ 7 8 state : { 9 items : { 10 "test_A" : 11 [ 12 { 13 "test_A_01" : "あああ", 14 "test_A_02" : "いいい", 15 "test_A_03" : "ううう" 16 } 17 ], 18 "test_B" : 19 [ 20 { 21 "test_B_01" : "あああ", 22 "test_B_02" : "いいい", 23 "test_B_03" : "ううう" 24 } 25 ] 26 } 27 }, 28 29 getters : { 30 url : (state) => "https://localhost/test_api?params=" + JSON.stringify(state.items) 31 } 32 33}) 34

javascript

1 2// App.vue 3 4<template> 5 <div> 6 7 <a :href="url">GET送信</a> 8 9 </div> 10</template> 11 12<script> 13import { mapGetters } from "vuex"; 14 15export default { 16 17 computed : { 18 ...mapGetters([ 'url' ]) 19 } 20 21} 22</script>

php

1<?php 2 3// 文字コード設定 4//header( 'Content-Type: application/json; charset=UTF-8' ); 5 6$params = array(); 7 8if( isset( $_GET['params'] ) ){ 9 10 $params = $_GET['params']; 11 $params = json_decode( $params, true ); 12 13} 14 15echo "<pre>"; 16var_dump( $params ); 17echo "</pre>"; 18 19echo "<br><br>"; 20echo json_last_error(); 21echo "<br>"; 22echo json_last_error_msg(); 23
// 結果 api.php:22:null 4 Syntax error

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

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

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

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

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

yambejp

2021/08/19 06:18

結局jsからphpへはどうやって渡しているのでしょうか? ソースを提示ください
matsuo_basho

2021/08/19 06:39

早速の回答ありがとうございます! ちょうど先ほど必要最小限のソースコードまで添削し追記いたしましたので、 お手隙の際にご確認いただけますと幸いです。。
guest

回答1

0

ベストアンサー

JSONデータをそのままurlに結合しているのですか?

javascript

1encodeURIComponent(JSON.stringify(state.items))

してみてはどうでしょうか?

投稿2021/08/19 06:49

yambejp

総合スコア115012

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

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

matsuo_basho

2021/08/19 07:05

ありがとうございます! js側で以下を追記 `encodeURIComponent(JSON.stringify(state.items))` php側で以下を追記 `$params = stripslashes( $params );` 上記2点を修正することで、無事にphp側で元のデータに戻すことができました。 本当にありがとうございます。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問