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

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

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

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

6069閲覧

ajax パラメータ[object Object]となってしまう

yassan511

総合スコア19

JavaScript

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2020/02/11 06:14

編集2020/02/11 07:07

前提・実現したいこと

Laravelを使用しており、ボタンが持つdata-idの値をControllerに渡したい

発生している問題・エラーメッセージ

ControllerにPOSTしていますが、パラメータが[object Object]となってしまい、値が送れていません。 ajaxのdataの部分に問題があるかと思いますが、記述のどの部分に問題があるかがわかりません。

該当のソースコード

javasctipt

1 $.ajax({ 2 url: 'test/save', 3 type: 'POST', 4 data: {id: $(this).attr("data-id")}, 5 dataType: 'json', 6 cache: false, 7 processData: false, 8 })

PHP

1 public function save(Request $request) 2 { 3 $group= session()->get('group'); 4 $add_group = new Group(); 5 $add_group ->group_id = $request->id; 6 $add_group ->group_number = $group->id; 7 $add_group ->save(); 8 return response()->json($add_group); 9 }

試したこと

var test = $(this).attr("data-id"); alert(test);

でdata-idの値の取得はできました。

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

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

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

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

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

m.ts10806

2020/02/11 06:15

>パラメータが[object Object]となってしまい、値が送れていません。 これが再現するコードはどこでしょうか。
yassan511

2020/02/11 06:18

再現するコードというのはControllerの記述ということでしょうか。
m.ts10806

2020/02/11 06:22

少なくとも私には提示したコードにはどこにも[object Object]が確認できるコードがないようにしか見えませんが。そもそも出力すら書かれてません。 再現できるコード提示しないとアドバイスは無理です。
m.ts10806

2020/02/11 06:22

HTMLもないJavaScriptも全部提示されている様子はない。LaravelはおろかPHPもない。 これでどうやって何のアドバイスが得られるでしょうか。
yassan511

2020/02/11 07:09

情報足らずで申し訳ありません。 修正しました。
退会済みユーザー

退会済みユーザー

2020/02/11 07:10

LaravelならjQueryのajaxではなくaxios使って欲しい。bootstrapに必須だから仕方なくjQueryもインストールされるけどLaravelではVue+axiosが標準。
guest

回答2

0

({}).toString()

これを実行してみてください。
"[object Object]"
となりますね?
つまり、オブジェクトをtoStringすると[object Object]となるんです。
AjaxでPOSTする時に、オブジェクトを与えても、自動的に文字列型に整形されるので
このような動作をします。

Laravel/Ajaxは関係ないので
とりあえずJS側でconsole.logで目的の値が出せるように修正してみましょう

$('#hoge').attr("data-id")

こんな感じで

投稿2020/02/11 06:52

mikkame

総合スコア5036

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

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

yassan511

2020/02/11 07:14

console.log($(this).attr("data-id"));で目的の値は取得できました。
guest

0

自己解決

data: 'id='+$(this).attr("data-id"),で解決しました。

投稿2020/02/11 07:19

yassan511

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問