我有在Drupal Web表单模块。 我想提交表单到Web窗体从外部应用程序使用了AJAX POST方法REST服务。 我可以能够使用AJAX检索web表单(节点/ 1)。 在提交它不应该创建新的节点,而是将获得加入到Web表单。
在此先感谢您的帮助.....
我有在Drupal Web表单模块。 我想提交表单到Web窗体从外部应用程序使用了AJAX POST方法REST服务。 我可以能够使用AJAX检索web表单(节点/ 1)。 在提交它不应该创建新的节点,而是将获得加入到Web表单。
在此先感谢您的帮助.....
为了能够检索数据并将数据发送到网络表单模块与外部应用程序,我建议你使用表格服务的Drupal模块,使可用于您的调查REST API。
一旦你安装和配置的模块和它的依赖(如果有的话),你就可以检索调查的序列化数据。 您也可以通过适当的请求与适当的HTTP方法端点发送提交(GET,POST等)。 查看端点描述表格服务的页面模块。
你需要知道你要提交的数据格式。 在此 ,你会发现JSON对象的正确的格式。 所述的值values
密钥是一个数组要么它有一个或多个值,所以大部分的时间,它看起来像这样:
{'values':{0:"put your value here"}}
在多个值(复选框,多选择)的情况下,可以使用values
是这样的:
{'values':{
0:"put your value1 here",
1: "put your value2 here",
}}
最后,这里是HTML和AngularJS的片段准备和张贴到REST API的请求。
HTML
<form ng-submit="submit('put the UUID of the survey here')" ng-controller="formCtrl">
<label>Your name:</label><br/>
<input type="text" ng-model="formData[1]['values'][0]" /><br/>
<label>I like tea</label><br/>
<input type="checkbox" ng-model="formData[2]['values'][0]" value="tea" /><br/>
<label>I like coffee</label><br/>
<input type="checkbox" ng-model="formData[2]['values'][1]" value="coffee" /><br/>
<input type="submit" value="Send" />
</form>
请注意,您不需要编写静态HTML的形式,但你可以检索来自API的调查数据,并通过脚本建的形式。
JavaScript的
var app = angular.module('webformApp', []);
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
app.controller('formCtrl', function($scope, $element, formService) {
$scope.submit = function(uuid){
formService.postForm(uuid, this);
};
});
app.service('formService', function($http){
return {
postForm: function(uuid, $scope){
var toPost = {
webform: uuid,
submission: {
data: $scope.formData
}
};
console.log(toPost);
console.log(JSON.stringify(toPost));
return $http.post('http://example.com/yourendpoint/submission', toPost);
}
};
});
要尝试/测试API本身就可以使用Chrome浏览器的邮差扩展。 这JS将JSON字符串登录到控制台将其发送到API。
玩得开心!