在Drupal6的一份form表单中完成创建和更新,主要使用一个标志位或者标志字符串来判断其是创建(save)还是更新(update)
我的模块叫credit,首先在菜单menu中写个指向新建的链接,如下:
之后写这个指向的credit_create方法,如下:
方法中的action变量很重要,标识你接下来的表单中到底完成哪部分的操作,接下来调用drupal_get_form方法建立表单,action参数要传入form方法中,接下来看form方法:
表单方法中首先将传入的action变量赋给一个hidden元素,来给后面的验证和提交做功能区分,之后的switch语句判别是提交还是更新,这里做创建动作。
紧接着是表单的验证和提交,如下:
这里传入的submit_options表单元素就可以辨别表单到底是提交还是更新,分别写在各自的地方,就可以完成新建提交的工作,同样道理我们写更新功能,菜单中需要传入待更新信息记录的id,如下:
然后看此链接访问的方法credit_edit:
这时action变量是update,传入form后会执行相应的编辑动作,当然之前要完成取出老记录的动作,可放在switch的update部分来做,传入的id参数很重要,之后取出的值会放到表单元素的#default_value属性。
之后和新建一样,只不过过程都会走“update”标识的处理。
这样就在一份form表单中完成了创建save和编辑update两个功能,小生不才,如有纰漏,请多指教