前提・実現したいこと
inputタグのhidden属性で値を保持したいのですが、
カレー → ハンバーグの順に選択をすると 最後にクリックしたハンバーグのデータのみに上書きされてしまいます。
それぞれのデータ分の数だけ値を保持させたいのです。
よろしくお願いいたします。
"menu_name" => array:4 [▼ 0 => "ハンバーグ" 1 => null ] "menu_cd" => array:4 [▼ 0 => "21" 1 => null ] コード
該当のソースコード
html
1 <table class="table table-hover table-bordered"> 2 <thead class="thead-light" style="position: sticky; top: 0; z-index: 1;"> 3 <tr> 4 <th scope="col" class="text-center">選択</th> 5 <th scope="col" class="text-center">メニュー</th> 6 <th scope="col" class="text-center">メニューCD</th> 7 </tr> 8 </thead> 9 <tbody> 10 <tr> 11 <td class="text-center"><button class="btn btn-success ml-2" type="button" onclick="selectStore(this)">選択</button></td> 12 <td>カレー</td> 13 <td>19</td> 14 </tr> 15 <tr> 16 <td class="text-center"><button class="btn btn-success ml-2" type="button" onclick="selectStore(this)">選択</button></td> 17 <td>ハンバーグ</td> 18 <td>21</td> 19 </tr> 20 </tbody> 21 </table>
javaScript
1function selectStore(obj) { 2 let Row = obj.closest('tr') 3 let Cells = Row.getElementsByTagName("td") 4 let storeName = Cells[1].innerText 5 let storeCd = Cells[2].innerText 6 this.newRow(menuName, menuCd) 7 } 8 9 function newRow(menuName, menuCd) { 10 const input = document.createElement("input") 11 input.setAttribute("type", "hidden") 12 input.setAttribute("name", "menu_name[]") 13 input.setAttribute("id", "menuName") 14 document.getElementById("inputForm").appendChild(input) 15 document.getElementById('menuName').value = menuName 16 17 const input2 = document.createElement("input") 18 input2.setAttribute("type", "hidden") 19 input2.setAttribute("name", "menu_cd[]") 20 input2.setAttribute("id", "MenuCd") 21 document.getElementById("inputForm").appendChild(input2) 22 document.getElementById('menuCd').value = menuCd 23 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/22 01:09