Я собираю сообщения формы через jQuery через метод the.val(), проверяя эти сообщения и передавая ошибки обратно на входы формы или передавая true для метода $ post, который вызывает скрипт PHP cURL.Как передать вложенный массив, используя php cURL
Типичная переменная будет выглядеть следующим образом:
var industs_servedVal = $('#industs_served').val();
В данном случае это выбор множественного поля формы. Я понимаю, что метод .val() в jQuery передает массив, поэтому это кажется разумным, и я прав, говоря, что var также будет собирать массив.
Я затем передать уаг industs_servedVal методе $ .post, как это (то скользит вверх благодарственное письмо):
$.post('../inc/form_sendsf_modified.php', {
othervars: othervarsVal;
industs_served: industs_servedVal,
}, function(data) {
$('#sendEmail').slideUp('slow', 'swing', function() {
$('#sendEmail').replaceWith('<h3>Thank you!</h3><p>Your message was sent to us. We\'ll get back to you as soon as we can.</p>');
});
});
}
return false;
});
Файл «form_sendSF_modified.php» обрабатывает эти сообщения и отправляет в отдел продаж Облако с использованием cURL. Это работает; однако проблема заключается в том, что Sales Force показывает «массив» как значения, полученные для массива нескольких полей, а не сами значения массива. Есть ли проблема в том, как я собираю массив и передаю его в отдел продаж. Является ли цикл foreach способным отправлять несколько значений массива полей, а также другие значения в виде массива, как показано в коде.
$post_data['00N70000002U2fA'] = $_POST['industs_served']; //Array
//$otherpost data
//cURL CODE for post
//traverse array and prepare data for posting (key1=value1)
foreach ($post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection to SFDC
$curl_connection = curl_init('https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
//show information regarding the request
//print_r(curl_getinfo($curl_connection));
//echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
//End cURL
Привет и добро пожаловать на SO, при предоставлении ответов, это большая практика, чтобы сопровождать его с объяснением. – Fluffeh