如何以编程方式更新 Drupal 中现有的已提交网络表单提交?
How do I programmatically update an existing submitted webform submission in Drupal?
我正尝试在 Drupal 规则中使用 PHP 来更新提交的网络表单提交中的值。我可以正确访问和查看数据。当我为一个字段分配一个新值时,如果我使用它甚至会正确显示:
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);
问题有 2 个方面:
我没有在网络表单的 NID 上使用 node_load()。
我没有使用正确的网络表单函数来加载数据。
// 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);
文档:
我正尝试在 Drupal 规则中使用 PHP 来更新提交的网络表单提交中的值。我可以正确访问和查看数据。当我为一个字段分配一个新值时,如果我使用它甚至会正确显示:
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);
问题有 2 个方面:
我没有在网络表单的 NID 上使用 node_load()。
我没有使用正确的网络表单函数来加载数据。
// 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);
文档: