编程语言
首页 > 编程语言> > php-如何在Drupal中以编程方式更新现有的已提交Web表单提交?

php-如何在Drupal中以编程方式更新现有的已提交Web表单提交?

作者:互联网

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

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

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

我尝试使用webform_submission_update()函数来推送更改,但还是没有运气.

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

码:

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

解决方法:

问题是两方面的:

我没有在网络表单的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);

说明文件:

> webform_get_submission()
> webform_submission_update()

标签:drupal-webform,drupal,drupal-7,php
来源: https://codeday.me/bug/20191027/1943642.html