Как создать массив с ключами php с переменными для значений - PullRequest
0 голосов
/ 24 октября 2011

Я использую drupal для создания какой-либо пользовательской формы, которая отправляется третьей стороне, и я пытаюсь связать результаты моей формы - некоторые из которых имеют некоторые функции преобразования, примененные к ним - для отправки получателю формы.

Я использовал функцию 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 голосов
/ 24 октября 2011

вы можете либо сохранить переменную по ссылке с помощью & $ var, либо просто сохранить имя переменной в массиве и использовать $$ array ['key']; чтобы получить значение $ var

Лучше всего создать объект stdClass и сохранить переменные как атрибуты, он работает как ассоциативный массив, но он чище

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...