前提条件・したいこと
- input[type="text"]のnameは、image_title[title][]とします。
- ファイルを一つずつ選択し、input[type="text"]にタイトルを入力します。
- POSTで、それぞれのinput[type="text"]のタイトルの中身を取得します。
- POSTで、name=image_title[title]の配列を取得されます。
問題点
POSTから取得した配列の中身が一つしか取得できません。
ソース
php
1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 9 <!-- <script src="./jquery.uploadThumbs.js"></script> --> 10 <script src="./form_test_edit_img.js"></script> 11 <title>画像読込テスト</title> 12 <?php 13 $image_title = $_POST['image_title']; 14 $image_title1 = $image_title['title']; 15 foreach((array)$image_title1 as $val){ 16 echo $val; 17 } 18 ?> 19</head> 20 21<body> 22 <form action="./form_test.php" method="post" id="test_form"></form> 23 <ul id="files"> 24 <li><input type="text" name="image_title[title][]" class="upload_title" form="test_form" /></li> 25 <li><input type="file" name="images[]" class="file_input" accept="image/*" form="test_form" /></li> 26 </ul> 27 <input type="submit" value="submit" form="test_form"> 28</body> 29 30</html>
javascript
1$(function(){ 2 $(document).on('change','.file_input',function(e){ 3 var file = e.target.files[0]; 4 var self = $(this); 5 var reader = new FileReader(); 6 reader.addEventListener('load',function(){ 7 self.after($('<img>').attr('src',reader.result).css('max-width',100)); 8 }); 9 reader.readAsDataURL(file); 10 $('#files').append($('<li> </li>'),$('<li><input type="text" name="image_title[title][]" class="upload_title" placeholder="画像のタイトルを入力してください" form="test_form"></li>'),$('<li>').append($(this).clone().val(""))); 11 }); 12});
POSTを使ってinput[type="text"]の中の配列を取得するためには、どうすればよろしいでしょうか。
foreachの使い方がよろしくないのでしょうか。
皆様方からご助言を頂ければと存じます。
お手数ですが、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー