Тьфу, это, наверное, что-то простое, но это сводит меня с ума. У меня есть простая форма (просто кнопка отправки), которую я вставляю в узел с помощью hook_nodeapi(). Он вставляется правильно, и страница обновляется при отправке, но никогда не вызывает функцию form_submit(). Вот код:
function fantasy_stocks_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
$form = drupal_get_form('fantasy_stocks_buy_me_form', $node);
switch ($op) {
case 'view':
$node->content['body']['#value'] .= $form;
break;
}
}
function fantasy_stocks_buy_me_form(&$form_state, $node) {
$form['submit'] = array(
'#type' => 'submit',
'#title' => t('Buy') . ' ' . $node->title,
'#description' => t('Add') . ' ' . $node->title . ' ' . t('to your stock portfolio.'),
'#value' => t('Buy') . ' ' . $node->title,
'#submit' => TRUE
);
$form['node_added'] = array(
'#type' => 'hidden',
'#value' => $node->nid
);
$form['#submit'][] = 'fantasy_stocks_buy_me_form_submit';
return $form;
}
function fantasy_stocks_buy_me_form_submit( $form, &$form_state ) {
$message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_values,true) . '</pre>';
drupal_set_message(t($message));
}
Я пытался добавить эхо и die() в функцию отправки, она определенно не вызывается. Я также пытался оставить объявление $form['#submit'] , так как по умолчанию об этом должно позаботиться, но безрезультатно. Я знаю, что должен пропустить что-то глупое. Любые идеи?
Кроме того, одна вещь, которая кажется странной, заключается в том, что форма отображается со следующим тегом:
<form action="/MLMBid/node/5" accept-charset="UTF-8" method="post" id="fantasy-stocks-buy-me-form-1">
Это нормально, что к идентификатору формы добавляется "-1"?