2

我是drupal的新手。

我试图将数据从drupal 发送到node.js 函数并将数据从节点保存到mongo 中。

我在php中写了一个函数

function sample_working_submit($form, &$form_state) { //Function to connect with node and save into Mongo using node
  $Name = check_plain($form_state['values']['Name']);
  $Age = check_plain($form_state['values']['Age']);
  $request_url = "http://10.20.5.112:3001/save/$Name/$Age ";
  $response = drupal_http_request($request_url);
}

只要名称(输入)之间没有“空格”,这就是有效的。如何用空格保存输入。为什么会出现这个问题?

我如何将函数重写为帖子?

4

3 回答 3

2
<?php
$url = http://localhost:8080/myservlet;

$data = array (
    'name' => check_plain($form_state['values']['Name']),
    'age' => check_plain($form_state['values']['Age'])
    );

$response = drupal_http_request($url, $headers, 'POST', json_encode($data));
?>

这会将数据发布到 URL。请注意,您还需要更改服务器端的逻辑以接收 POST 数据而不是 GET 数据。

请参阅此处了解更多信息

于 2013-06-03T16:27:50.533 回答
1

如果名称之间的空格是问题,请尝试使用urlencode ()。

代码将类似于:

$Name = urlencode(check_plain($form_state['values']['Name']));
于 2013-06-03T11:51:28.617 回答
0

对于 POST 请求,我使用SimpleBrowser而不是 drupal_http_request()。它易于使用,您将能够以任何形式传递字符串。

于 2013-06-03T14:03:21.483 回答