前提・実現したいこと
お世話になっております。
元々以下の通りformを3つ使ってhiddenの情報をPOST送信していたのですが、
formが多いと煩雑になるので1つにしたいとご指摘をいただきました。
その場合、javascripでの対応になるのかと思ったのですが、
全く上手くいかず、皆様のお知恵を拝借いただけますと幸いです。
元のソースコードはこちらです。
PHP
1<?php 2echo <<<EOD 3 <table border="2" cellpadding="2" cellspacing="0"> 4 <tr> 5 <td align="center" nowrap>メニュー</font></td> 6 </tr> 7EOD; 8for($i = 0 ; $i < count($listArray); $i++){ 9echo <<<EOD 10 <tr> 11 </td> 12 <td align="center" class="Bold1" width="200"> 13 <form action="#" method="post" target="blank" style="display: inline"> 14 <input type="hidden" name="mode" value="check"> 15 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 16 <input type="hidden" name="kind" value="$kind"> 17 <input type="submit" size="12" maxlength="10" value="確認"> 18 </form> 19 <form action="#" method="post" target="blank" style="display: inline"> 20 <input type="hidden" name="mode" value="fix"> 21 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 22 <input type="hidden" name="kind" value="$kind"> 23 <input type="submit" size="12" maxlength="10" value="修正"> 24 </form> 25 <form action="#" method="post" target="blank" style="display: inline"> 26 <input type="hidden" name="mode" value="delete"> 27 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 28 <input type="hidden" name="kind" value="$kind"> 29 <input type="submit" size="12" maxlength="10" value="削除" onClick="return d_check()"> 30 </form> 31 </td> 32 </tr> 33EOD; 34} 35 36echo <<<EOD 37</table> 38EOD; 39 40?>
JavaScript
1<script language="JavaScript"> 2 3//削除確認 4function d_check(){ 5 if (window.confirm('削除しますか?')) { 6 return true; 7 } 8 else{ 9 alert('キャンセルしました'); 10 return false; 11 } 12} 13</script>
試したこと
ひとまずformを1つにして、各ボタンにonclickで関数を呼び出す
という基本的なところまでしかいけてないです。
javascripに疎く、このやり方が正しいのかもわからず、
答えを知りたいというより、どういった関数をどのように使うべきか、
参考例などをご教示いただけますと大変助かります。
javascripでalertにしているのはテストのつもりです。
これも上手く出ないので行き詰ってしまってます。。。
PHP
1<?php 2echo <<<EOD 3 <table border="2" cellpadding="2" cellspacing="0"> 4 <tr> 5 <td align="center" nowrap>メニュー</font></td> 6 </tr> 7EOD; 8for($i = 0 ; $i < count($listArray); $i++){ 9echo <<<EOD 10 <tr> 11 </td> 12 <td align="center" class="Bold1" width="200"> 13 <form id="test" action="#" method="post" target="blank" style="display: inline"> 14 <input type="hidden" name="mode" value="check"> 15 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 16 <input type="hidden" name="kind" value="$kind"> 17 <input type="submit" size="12" maxlength="10" value="確認" onClick="sample1_exec"> 18 19 <input type="hidden" name="mode" value="fix"> 20 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 21 <input type="hidden" name="kind" value="$kind"> 22 <input type="submit" size="12" maxlength="10" value="修正" onClick="sample2_exec"> 23 24 <input type="hidden" name="mode" value="delete"> 25 <input type="hidden" name="no" value="{$listArray[$i]['no']}"> 26 <input type="hidden" name="kind" value="$kind"> 27 <input type="submit" size="12" maxlength="10" value="削除" onClick="return d_check()" onClick="sample3_exec"> 28 </form> 29 </td> 30 </tr> 31EOD; 32} 33 34echo <<<EOD 35</table> 36EOD; 37 38?>
javascrip
1 2<script language="JavaScript"> 3<!-- 4 5//削除確認 6function d_check(){ 7 if (window.confirm('削除しますか?')) { 8 return true; 9 } 10 else{ 11 alert('キャンセルしました'); 12 return false; 13 } 14} 15 16function sample1_exec(){ 17 var f = document.test; 18 for(var i = 0 ; i < f.elements.length ; i++){ 19 if(f.elements[i].type=='hidden'){ 20 alert(i + '番目の値は' + f.elements[i].value + 'です' ); 21 } 22 } 23 24} 25 26function sample2_exec(){ 27 var f = document.test; 28 for(var i = 0 ; i < f.elements.length ; i++){ 29 if(f.elements[i].type=='hidden'){ 30 alert(i + '番目の値は' + f.elements[i].value + 'です' ); 31 } 32 } 33 34} 35 36function sample3_exec(){ 37 var f = document.test; 38 for(var i = 0 ; i < f.elements.length ; i++){ 39 if(f.elements[i].type=='hidden'){ 40 alert(i + '番目の値は' + f.elements[i].value + 'です' ); 41 } 42 } 43 44} 45 46//--> 47</script> 48
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/23 07:31