嘿伙计们我是Drupal Noob所以对我来说很容易。我已经创建了几个具有不同形式的自定义模块,但是我一直使用hook_form或hook_output。我想知道我是否可以在同一个模块中使用它们。
我有一个应该首先显示课程列表的模块,然后在用户点击其中任何一个后,它应该为给定的课程ID生成一个表单。
我生成学生列表的方式是使用hook_output并生成列表。 发生这种情况的视图URL是: / drupal的/ Q =讲师/ evaluate_student /
并为课程生成的列表如下所示:
<a href='?q=lecturers/evaluate_student/1/'>Evaluate: <b>Advanced Networking</b></a><br/>
这实际上调用了相同的ID,为URL添加了一个额外的参数(在这种情况下为/ 1 /)。
我获取它的方法是使用args():
if (arg(2)) {
/* Get arguments from URL
*/
$coursework_id = arg(2);
}
现在我想使用此ID生成表单,而不将其重定向到另一个模块。我可以在这里创建另一个hook_form并调用它,如果是的话我该怎么做?
提前致谢, -D
答案 0 :(得分:0)
好的,经过一段时间的研究和解决方案并不是很复杂。
我首先创建了一个hook_form:
function evalute_student_form($form, &$form_state){
$form['coursework_description'] = array(
'#type' => 'textarea', //you can find a list of available types in the form api
'#title' => 'Coursework Description:',
'#size' => 150,
'#maxlength' => 150,
'#required' => TRUE, //make this field required
);
return $form;
然后我只是通过使用以下代码添加了此方法的返回值$ form:
if (arg(2)) {
/* Get arguments from URL and then assign the class to the user.
*/
$coursework_id = arg(2);
return evalute_student_form();
}
我希望它对某人有用。