あー、めんどくさかったよー(;´Д`)
タイトル通りです。
普通、submitはひとつのフォームに対し、1つ配置される図が多いと思います。
今回、CakePHPでFormの中にボタンだけを入れたい。んで、それぞれをクリックするとPOSTでデータを飛ばす。という処理を実装しました。
面倒臭かったので(知らなかったから)、φ(..)メモメモ
<?=$this->Form->create('Controller', array( 'controller' => 'controller', 'action' => 'backup', 'div' => false, 'name' => 'formPost' )));?> <?php foreach($list as $key => $value) :?> <div class="submit_button"><?php echo $this->Form->submit('', array( 'class' => 'backup_submit', 'div' => false, 'onClick' => 'return set_value(' .$value['id'] . ')') // ここがミソ );?></div> <?php endforeach; ?> <input type="hidden" name="test_id"> <!-- ここも味噌 --> <?=$this->Form->end();?>
上記のように記述すると、submitをクリックするとonClickイベントになる。
で。
それが実行されるJavaScriptがこれ。
<script language="JavaScript"> function set_value(s_val){ if(window.confirm('サブミットするよ?いいのかな?')){ document.formPost.test_id.value = s_val; return true; } else { return false; } } </script>
onclickの引数が渡したいデータ。(value的な?)これをformの閉じタグ上にあるhiddenのinputに渡せばおk.
あとは、submitがクリックされるので、Postで送信されるというわけ。
また、この関数はsubmitを押したあとにキャンセルできるようになっています。
さて、疲れた。。。。orz