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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

1回答

5277閲覧

axiosで配列をPOSTしたら正しく送信されない

landy77

総合スコア1614

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2019/01/01 05:40

下記のようなデータがあります

{"day":"2018-12-31",
"asa":0,
"hiru":0,
"yoru":0}

実際はこれが日付違いで7つ(一週間分)あります。
[{"day":"2018-12-31","asa":0,"hiru":0,"yoru":0},{"day":"2019-01-01","asa":0,"hiru":0,"yoru":0},・・・・]
という感じ。

Vue.jsでDataListと言う配列に入っておりVueDeveloperで見るとArray[7]になっています。

このデータを

JavaScript

1 let params = new URLSearchParams(); 2 params.append("dataList", this.DataList);//入力データ 3 //URL 4 var url = "/api/data/regData.php"; 5 axios.post(url, params) 6   .then・・・・

これで送信すると送信時の時点で
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
と言うテキストが送信されてしまいます。(ChromeのNetWorkタブで確認)

PHPでの受信も当たり前ですがgettypeでチェックしても文字列が送られてきています。
どうしたら配列が正しく送信されますでしょうか?

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

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

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

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

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

ozwk

2019/01/01 06:15

jsonではだめなんですかね
landy77

2019/01/01 07:16

ozwkさんの言うように一度JSONに変換?して送ってみました。 ちゃんとデータとしては送られるようになったので最終目的は果たせます。 ただjson_decodeでstdClass Objectに変換されてしまうので私だけなら良いんですがちょっと今回はパスさせて頂きました。
guest

回答1

0

ベストアンサー

URLSearchParams.append(key, value)key=valueというURLクエリパラメータ文字列に相当します。
valueは文字列に変換されるので、オブジェクトは文字列の"[object Object]"になります。

axios.post(url, data)dataは配列をそのまま指定可能です。

投稿2019/01/01 06:56

NozomuIkuta

総合スコア1260

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

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

landy77

2019/01/01 07:13

なるほど!理解しました! なんとなく使ってるとダメですね・・・
NozomuIkuta

2019/01/01 08:01

解決したようでよかったです。
Anon_

2021/08/04 02:03

できれば解決法を書いてほしいです・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問