【View側】
<select id='folder_name' name='folder_name' class="px-6 py-3 w-40 text-center">
@foreach($months as $month)
<option value="{{ $month->id }}">{{ $month->folder_name }}</option>
@endforeach
</select>
【Controller側】
public function store(Request $request)
{
$files = $request->file('file');
foreach($files as $file)
{
$file_name = $file->getClientOriginalName();
$file->storeAs('202207', $file_name);
} ↑この部分
<操作の流れ>
①ファイルをアップロードするために、storage/appの下に、フォルダを作成します。
②フォルダを作成すると同時に、そのフォルダ名をデーターベースのテーブルに保存します。
③ヴュー画面のセレクトボックスに作成されたフォルダ名が表示されますので、ファイルをアップロードしたいフォルダ名を選択します。
④ファイルアップロード画面で、ファイルを選択し、アップロードします。
<できている事>
フォルダの作成および、テーブルへの保存。
ヴュー画面で、セレクトボックスには、作成したフォルダ名が表示され、選択できます。
<できていない事>
セレクトボックスで、ファイルをアップロードしたいフォルダ名を選択した時に、コントローラーの '202207' の部分が選択された値(フォルダ名)となるようにしたい。
javascriptで、document.getElementById を使ったらいいのかなと思い、検索してみましたが、私の勉強不足でどう応用したらよいかわかりません。
答えは別にあるのかもしれませんが、どなた様がご教授いただけますと幸いです。
記述に不足がございましたら、申し訳ございません。
No.2ベストアンサー
- 回答日時:
月を選んで表示ボタンを押した際に、
請求書のアップロード送信フォームを表示する処理を、
サーバー側の Controller&View で行っているならば、
View 内に <input type=hidden> を埋め込みましょう
JS イベント処理は不要です
ブラウザ側の JS イベント処理で AJAX を駆使して行っているならば、
頑張ってイベント処理内のフォーム作成機能を探してください。
そこで以下のように複写すればよいでしょう。
document.forms['複写先formのnameかid']
.elements['inputのname'].value
= document.forms['複写元formのnameかid']
.elements['selectのname'].value;
質問に対し、的確なご指導をいただきありがとうございます。
考え抜いた末に、月(フォルダ)の新規作成をアップロードのViewにもってきて、さらに作っている月(フォルダ)を選択できるように、<select>部分もコピーしました。このほうが、アプロードする時にフォルダを間違えるミスがないと考えました。しかし、最初の設定では、うまくいきませんでした。原因は<option value="{{ $month->id }}">{{ $month->folder_name }}</option>としたままだったので、フォルダ名ではなくidが渡っていました。ddで確認し、idではなくfolder_nameとしたら、すべてうまくいきました。これもヒントをいただけたおかげです。
本当にありがとうございました。
No.1
- 回答日時:
<select name=folder_name> が <input type=file> と
同じ <form> 内ならば、
サーバー側にて POST 値の "folder_name" を読み取る。
異なる <form> ならば、
<input type=file> と同じ <form> 内に
<input type=hidden name=folder_name> を用意し、
送信タイミングで値を複写する JS イベント処理を書く。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
Excel VBA 同じ名前のフォルダ...
-
同一フォルダ内の別ブックから...
-
VBA フォルダ名に特定の文字を...
-
【マクロ】ファイル名の日付に...
-
ディレクトリ名変更してコピー...
-
VBA 最新のフォルダ取得
-
Downloaded Program Filesはど...
-
デスクトップの画像をhtmlに表...
-
Access VBA で フォルダ権限...
-
保存先のフォルダ名を指定した...
-
VBA フォルダの複数選択ができない
-
Hitachi Embedded Workshop (HE...
-
エクセルのマクロについて教え...
-
エクセルで、マクロを使わずに...
-
VS2005で"定義へ移動"ができません
-
多量のファイルをフォルダに自...
-
ファイル名を取得し、ログファ...
-
Dreamweaverでイメージを挿入す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報
ご回答ありがとうございます。
質問の部分のView画像を添付いたしました。
このように、異なる<form>担っておりますj。
再度、考えてみまして、画像の上部分がセレクトされた月で抽出されたデーターベースの一覧になりますので、アップロード時ではなく、月をセレクトして表示ボタンを押したときに、一覧表示される(アップロードがまだの場合は未表示)と当時に、コントローラのアップロード先のフォルダを変更するようにしたらよいのではないかと思いました。
select部分に<form>を追加し、javascriptで一覧表示させるとの、選択された月をコントローラで使えるようにします。これはいかがでしょうか。
<form method="post" action="" class="">
@csrf
<select type="text" id="folder_name" name="folder_name">
@foreach($months as $month)
<option value="{{ $month->id }}">{{ $month->folder_name }}</option>
@endforeach
</select>
<div class=" text-3xl font-extrabold px-4">月</div>
<button type="submit" class="">{{ __('Display') }} </button>
</form>
しかし、最初の分もそうですが、これについても、JSイベントの書き方がわかりません、