0

.val() メソッドを介して jQuery 経由でフォーム投稿を収集し、それらの投稿を検証してフォーム入力にエラーを返すか、PHP cURL スクリプトを呼び出す .$post メソッドに true を渡します。

典型的な var は次のようになります。

var industs_servedVal = $('#industs_served').val();

この場合は、複数選択フォーム フィールドです。私は、jQuery の .val() メソッドが配列を渡すことを理解しているので、それは合理的であり、var も配列を収集すると言っても過言ではありません。

次に、次のように 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
4

2 に答える 2

0

これを使って

$post = "ac=on&p=1&pr[]=0&pr[]=1&a[]=3&a[]=4&pl=on&sp[]=3&ct[]=3&s=1&o=0&pp=3&sortBy=date";
parse_str($post,$fields); 

$url = 'http://example.com/';


//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
于 2013-09-10T11:18:34.057 に答える
0

配列自体を使用できます (ただし、Content-Type ヘッダーが multipart/form-data に変更されます)。

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_data);

または、 http_build_query関数でビルド文字列を使用することもできます。例 #3 を見てください。

于 2013-02-28T05:42:01.537 に答える