如何使用值的变量创建php键控数组

时间:2011-10-24 15:30:06

标签: php arrays drupal variables

我正在使用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);
}

1 个答案:

答案 0 :(得分:0)

你可以通过引用用&amp; $ var存储变量,或者只是将变量的名称存储在数组中并使用$$ array ['key'];得到$ var值

最好的事情是创建一个stdClass对象并将vars存储为属性,它就像一个关联数组,但它更干净