如何以编程方式更新Drupal中现有的提交的webform提交?

时间:2016-02-18 13:37:22

标签: php drupal drupal-7 drupal-webform

我试图在Drupal规则中使用PHP来更新提交的webform提交中的值。我可以正确访问和查看数据。当我为一个字段分配一个新值时,如果我使用它,它甚至会正确显示:

print $submission->data[61][0];

但是,当我导航到提交结果页面时,该字段不会更新。

我尝试使用webform_submission_update()功能推动我的改变,但仍然没有运气。

问题:如何以编程方式更新Drupal中现有的提交的网络表单提交?

代码:

$submission = webform_menu_submission_load($nid, $sid);

// Two ways I've tried to update the data
$submission->data[61][0] = "testwork";
$submission->data[61]['value'][0] = 'Declined';

// If I do print $submission->data[61][0]; it will show the new value.

webform_submission_update($nid, $submission);

1 个答案:

答案 0 :(得分:4)

问题是2倍:

我没有在webform的NID上使用node_load()。

我没有使用正确的webform函数来加载数据。

// Load the node and submission.
$node = node_load(3333);
$sid = $list_itemb->sid;
$submission = webform_get_submission($node->nid, $sid);

// Change submission data.
$submission->data[61][0] = 'Update';

// Finally, update the submission.
webform_submission_update($node, $submission);

文档: