编辑:Drupal - 在页面上包含多个user_profile_form
我认为这是因为动作是相同的或某事。我试图修改使用这个动作:
function mytheme_user_profile_form($form) {
global $user;
$uid = $user->uid;
//print '<pre>'; print_r($form); print '</pre>';
$category = $form['_category']['#value'];
switch($category) {
case 'account':
$form['#action'] = '/user/'.$uid.'/edit?destination=user/'.$uid;
break;
case 'education':
$form['#action'] = '/user/'.$uid.'/edit/education?destination=user/'.$uid;
break;
case 'experience':
$form['#action'] = '/user/'.$uid.'/edit/experience?destination=user/'.$uid;
break;
case 'publications':
$form['#action'] = '/user/'.$uid.'/edit/publications?destination=user/'.$uid;
break;
case 'conflicts':
$form['#action'] = '/user/'.$uid.'/edit/conflicts?destination=user/'.$uid;
break;
}
//print '<pre>'; print_r($form); print '</pre>';
//print $form['#action'];
$output .= drupal_render($form);
return $output;
}
但是,表单动作,当实际呈现的形式是不变的。他们都是/ user /%uid
我可以修改表单动作吗?
我在一页上包含了用户配置文件表单的几个不同“类别”,代码将正确输出我指定的表单。每个表单都在一个单独的可折叠div中。
我的问题是双重的。
(1)不填充预先在字段中的现有值和
(2)点击“保存”用于一个部分将导致警告:电子邮件字段是必需的,无论哪个形式的你实际上是节省
我很确定对于问题#2,这是因为按钮的名称在所有情况下都是相同的,就像表单ID一样。
print '<h3>– Account Settings</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'account'));
print '</div>';
print '<h3>– My Info</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'Personal'));
print '</div>';
print '<h3>– Experience</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'experience'));
print '</div>';
print '<h3>– Education</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'education'));
print '</div>';
你looekd,从源头上看看这些形式实际上是独一无二的? – mikewaters 2009-10-15 01:30:42