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

标签 php drupal drupal-7 drupal-webform

我正尝试在 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);

最佳答案

问题有两个:

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

关于php - 如何以编程方式更新 Drupal 中现有的已提交网络表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35482982/

相关文章:

PHP parse_str 函数用空格替换+号

php - 自 PHP 5.3 以来 mysqli 扩展是否无处不在?

php - PHP 自动加载器功能是否也适用于静态方法调用?

drupal - 如何将操纵器添加到现有菜单

javascript - 德鲁帕尔 |缓存页面中未缓存的 JS cookie/跟踪代码算法

php - 在 drupal 7 中安装 superfish 菜单

mysql - 从 {invalid_table} 中选择 invalid_field

php - 通过 AJAX 调试执行 Javascript

mysql - 如何在 ddev 中创建和加载第二个数据库?

Drupal:如何重建菜单导航