|
需 求' o& ?+ x' y' R4 @
在Drupal中自己定义一个表单,然后用ajax提交。 , a& C+ a, F6 L$ N, [- f1 E
解决方案 用html写一个form, 然后在form外面设置一个Button, 在button的onclick事件中调用jQuery.post()函数,将表单进行提交。
- C- q8 X" T. j1 ^5 h有下面两点需要注意: - button一定要放在表单外面,否则就会刷新页面了
- 每个input的控件必须有name, 如果没有name是无法获得数据的
- 在用jQuery.post()进行提交时,需要将form序列化,使用jQuery的Helper的.serialize()即可4 B. W* L C% S2 v4 K8 K
示例代码
- y$ F- H" {: ~6 T! r& D <form id="form_charge"><label for="txt_name"> Name:</label> <input type="text" name="txt_name" id="txt_name"></input><label for="txt_age"> Age:</label> <input type="text" name="txt_age" id="txt_age"></input></form><button onclick="$.post('/post/form', $('#form_charge').serialize(), function(data){$('#box_charge_result').html(data);});">Go!</button>% I+ ^ u0 D4 K1 @( U
0 o- c8 D& a( x7 P" z3 Y. F, f
这样在提交后,在/post/form路径中的$_POST会获得一个提交数组,如下面所示:
9 ^7 `' C3 u6 w! H$ _array(2) { ["txt_name"]=> string(1) "Blade" ["txt_age"]=> string(1) "100" } 5 V+ l4 I4 f7 e! v# P5 H
: u, W" f& w+ }" L# `4 E* U |