我正在使用drupal创建一些提交给第三方的自定义表单,我正在尝试将表单结果 - 其中一些应用了一些转换函数 - 发送给表单收件人。< / p>
我在简单的表单上使用了Drupal的drupal_http_request函数并且它运行良好,但是现在我的一些结果给了vars值,我不知道如何创建一个继续传递值的值的键控数组变种
我知道当我将表单直接发送给我的第三方时,他们会收到正确的结果,但是我试图将结果发送给他们,但是重定向到我自己网站的页面,所以我知道我的表单至少可以工作 - 这只是使用尝试编码的这个功能,所以我可以控制不重定向。 但我甚至不知道键控数组是否可以包含变量值,或者它是否是语法问题
这是我的代码:
function formshare_nameform_submit($form_id, &$form_state) {
// Lookup share matrix return value
$shareMatrixValue = setShareMatrixValue($form_state['values']['image_id']);
$langResultsCode = setLangForShare($langCode);
$gender = setGenderForShare($form_state['values']['gender']);
$first_name = $form_state['values']['first_name'];
$last_name = $form_state['values']['last_name'];
$email = $form_state['values']['email'];
$email_friend1 = $form_state['values']['email_friend1'];
$email_friend2 = $form_state['values']['email_friend2'];
$email_friend3 = $form_state['values']['email_friend3'];
$message = $form_state['values']['massage'];
$optin = $form_state['values']['optin'];
$category = $form_state['values']['category'];
$image_id = $shareMatrixValue;
$id_langue = $form_state['values']['id_langue'];
// Make an array of values to pass to 3rd party.
$pass_these = array();
$pass_these['shareMatrixValue'] = $shareMatrixValue;
$pass_these['langResultsCode'] = $langResultsCode;
$pass_these['gender'] = $gender;
$pass_these['first_name'] = $first_name;
$pass_these['last_name'] = $last_name;
$pass_these['email'] = $email;
$pass_these['email_friend1'] = $email_friend1;
$pass_these['email_friend2'] = $email_friend2;
$pass_these['email_friend3'] = $email_friend3;
$pass_these['message'] = $message;
$pass_these['optin'] = $optin;
$pass_these['category'] = $category;
$pass_these['image_id'] = $image_id;
$pass_these['id_langue'] = $id_langue;
// Post the data to 3rd party.
$url = 'http://mythirdpartysite.com';
$headers = array('Content-Type' => 'application/x-www-form-urlencoded');
$data = drupal_query_string_encode($pass_these);
drupal_http_request($url, $headers, 'POST', $data);
}
答案 0 :(得分:0)
你可以通过引用用&amp; $ var存储变量,或者只是将变量的名称存储在数组中并使用$$ array ['key'];得到$ var值
最好的事情是创建一个stdClass对象并将vars存储为属性,它就像一个关联数组,但它更干净