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

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

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

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

Laravel 5

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

Q&A

2回答

1045閲覧

laravelでajaxを使ってパーツを追加する

siki

総合スコア41

Ajax

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

Laravel 5

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

0グッド

0クリップ

投稿2019/06/07 08:15

現在、複数の画像をアップロードする前にサムネイルを表示するようなものを作成しておりますがうまくいっておらず、
お力を貸して頂けないかと質問させていただきました。

●やりたいことの一連の流れ
1.まとめてアップロードと言うdivで作られた欄に画像をドラッグ&ドロップで放り込む
2.画像サムネイルとタイトルを入力する欄のパーツがhtmlに追加される

●できていない、わからない部分
1.ajaxでパーツのhtmlを取得し、htmlとしてajaxへ返す

以下が現在のソースの一部になります。

ルーティングの設定

Route::get('/parts', '\PartsController@getParts'); Route::post('/setImage', '\Ajax\AjaxController@setImage');

画像を投入した際のjquery

$("#uploadImage").on("drop",function(e){ e.preventDefault(); for(var i = 0;i<e.originalEvent.dataTransfer.files.length ;i++){ var fileReader = new FileReader(); var loadedImageUri = ""; fileReader.onload = function( event ) { loadedImageUri = event.target.result; }; $.ajax({ url: "/setImage", type: "POST", data: fd, processData: false, dataType: 'html', }).done(function(data){ $(data).find('#thumbnail').append('<img src="'+loadedImageUri+'">'); alert("success!"); }) .fail(function(data){ alert("error!"); }); } });

base.blade.php

<div id="uploadImage"> 登録する画像をドラッグ&ドロップしてください </div> <div name="thumbnailList"> ここにパーツが追加される </div>

PartsController.php

public function setImage(Request $request) { return view('add-photo'); }

add-photo.blade.php(追加するパーツのblade)

<div id="thumbnail"> <input type="text" value=""> ここに画像のサムネイルが追加される </div>

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

設計が思いつかないから教えて欲しいという質問でいいんだろうか?
setImageで
0. 画像を受け取る
0. 画像をpublicディレクトリに配置する
0. 配置した画像のパスをajaxのレスポンスとして返す
0. ↑で取得したパスを使ってサムネイル用のimgタグをjsで書き足す

投稿2019/06/07 08:44

hentaiman

総合スコア6421

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

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

siki

2019/06/07 08:48

失意礼しました、記載が足りておりませんでした。 上記の段階ではまだ画像は保存せずサムネイルをURLスキームで表示するだけにしたいのです。
hentaiman

2019/06/07 08:54

ajaxで画像をbase64に変換したものを返せばimgタグで直接表示出来ますよ それともサーバーに書き込むという動作自体を一切したくないんですか?
mikkame

2019/06/10 02:05

> ajaxで画像をbase64に変換したものを返せば jsで変換できるし、ajaxで送る必要ないんじゃないかと・・・
hentaiman

2019/06/10 02:51

まあ自分ならどうするかで回答しただけなので・・・
guest

0

アップロードする前に、確認のためブラウザで画像を表示するには、Laravelにアップしてしまうと後で削除などが手間なので、File APIを使えばフロントエンド側で対応可能です。

File - Web API | MDN
フォームからファイルを選択した際に、submitする前にプレビュー表示する方法(jQuery版)

投稿2019/06/10 05:33

aro10

総合スコア4106

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問