
実現したいこと
ajaxを使用している画像アップロードのプレビューとサブカテゴリーの値を保持して確認画面から戻ってきた場合でも表示されている状態にしたい
ajaxを使うのが初めてなのですが、こういう入力フォームで皆さんはどのようにして表示させているのでしょうか
該当のソースコード
<form action="/product_regist_check" method="POST" enctype="multipart/form-data"> @csrf <div> <span>商品カテゴリ</span> </div> <div> <select name="category" id="category"> <option value="" style="display: none;">選択してください</option> @foreach ($categories as $category) <option value="{{ $category->id }}" {{ old('category') == $category->id ? 'selected' : '' }}>{{ $category->name }}</option> @endforeach </select> <select name="sub_category" id="sub_category"> <option value="">サブカテゴリーを選択してください</option> </select> </div> @error('category') <p class="error">*カテゴリーを選択してください</p> @enderror @error('sub_category') <p class="error">*サブカテゴリーを選択してください</p> @enderror <div> <span>商品写真</span> <div> <span>写真1</span> <div id="preview1"></div> <input type="file" name="image1" accept="image/jpg, image/jpeg, image/png, image/gif" onchange="previewImage(this, 'preview1')"/> @error('image1') <p class="error">*jpg、jpeg、png、gif形式で10MB以下の画像をアップロードしてください</p> @enderror </div> </div> <div class="btn"> <input type="submit" value="確認画面へ"><br> <input type="button" value="トップに戻る" onclick="location.href='/index'"> </div> </form> </div> <script> function previewImage(input, previewId) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function(e) { $('#' + previewId).html('<img src="' + e.target.result + '" style="max-width: 200px; max-height: 200px;" />'); } reader.readAsDataURL(input.files[0]); } } $(document).ready(function() { //サブカテゴリー $('#category').on('change', function() { var categoryId = $(this).val(); if (categoryId) { $.ajax({ url: '/get_subcategories', type: 'POST', dataType: 'json', data: { categoryId: categoryId, _token: '{{ csrf_token() }}' }, success: function(data) { $('#sub_category').empty(); $.each(data, function(key, value) { $('#sub_category').append('<option value="' + value.id + '" ' + '>' + value.name + '</option>'); }); } }); } }); }); </script>
補足情報(FW/ツールのバージョンなど)
laravel6
PHP7

