ฉันเป็นมือใหม่ที่ประกาศตัวเองถึงการสร้างแบบฟอร์มใน Drupal ฉันมีแบบฟอร์มที่โฮสต์บนเว็บไซต์ Drupal 7 (ใช้โมดูล webform) และจำเป็นต้องส่งค่าฟอร์มไปยัง URL ภายนอก ฉันได้ทำการค้นคว้ามาระยะหนึ่งแล้วและเขียนโมดูลที่กำหนดเองที่ใช้โมดูลเว็บฟอร์มเพื่อส่งภายนอกโดยใช้ hook_form_alter และส่งตัวจัดการ / ฟังก์ชั่นที่กำหนดเอง (รหัสวางด้านล่าง)
ฉันใช้หน้าต่อไปนี้เป็นแนวทาง แต่ฉันไม่สามารถรับแบบฟอร์มการทำงาน: https://drupal.org/node/1357136 การใช้ drupal_http_post () เพื่อส่งไปยังไซต์ภายนอก: ฉันกำลังทำอะไร ไม่ถูกต้อง?
ใครช่วยบอกให้ฉันรู้ถ้าฉันถูกทาง? คำแนะนำใด ๆ จะเป็นประโยชน์!
<?php
function webform_extra_form_alter(&$form, &$form_state, $form_id)
{
//only want form with nid 1171 to submit externally
//Note that "webform_client_form_1171" means modify the Webform form for the node with NID "1171". Adjust to match whichever webform node's form you're modifying
if($form_id == 'webform_client_form_1171')
{
$form['#action'] = url('https://[url path to external site]');
$form['#attributes'] = array('enctype' => "application/x-www-form-urlencoded");
$form['#submit'][] = 'webform_extra_submit';
}
}
// Adds a submit handler/function for the app signup form (Webform ID #1171)
function webform_extra_submit($form, &$form_state)
{
// Changes can be made to the Webform node settings by modifying this variable
//$form['#node']->webform;
// Insert values into other database table using same input IDs as external db
$option['query'] = array(
$firstName => $form_state['values']['firstName'],
$lastName => $form_state['values']['lastName'],
$email => $form_state['values']['email'],
$name => $form_state['values']['name'],
$phone => $form_state['values']['phone'],
);
$url = url('https://[url path to external site]', $option);
$form_state['redirect'] = $url;
//$form['#action'] = url('https:[url path to external site]');
//$url = 'https://[url path to external site]';
//$headers = array('Content-Type' => 'application/x-www-form-urlencoded',);
//$response = drupal_http_request($url, $headers, 'POST', http_build_query($form_state['values'], '', '&'));
}
?>