gpt4 book ai didi

php - 为什么我的 Drupal 表单提交函数没有被调用?

转载 作者:行者123 更新时间:2023-12-04 06:32:01 26 4
gpt4 key购买 nike

呃,这可能很简单,但它让我发疯。我有一个简单的表单(只是一个提交按钮),我使用 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));
}

我试过在提交函数中添加一个 echo 和 die() ,它绝对没有被调用。我也试过不使用 $form['#submit'] 声明,因为默认值应该处理它,但无济于事。我知道我一定错过了一些愚蠢的东西。有任何想法吗?

此外,看起来很奇怪的一件事是表单使用以下标签呈现:
<form action="/MLMBid/node/5"  accept-charset="UTF-8" method="post" id="fantasy-stocks-buy-me-form-1"> 

将“-1”附加到表单 ID 是否正常?

最佳答案

终于想通了。创建提交按钮的部分:

$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
);

我从教程中复制了部分内容,显然是
'#submit' => TRUE

不应该在那里。它覆盖了表单提交处理程序,这使得 drupal 试图寻找一个名为 TRUE 的函数。知道这是愚蠢的事情。

关于php - 为什么我的 Drupal 表单提交函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com