7

クライアントの情報を収集するフォームがあり、それから

  • それらをデータベースに保存します
  • いくつかの電子メールを送信します
  • SalesForce (SF) 部門に情報を送信します

さて、最初の 2 ツー タスクは簡単でしたが、3 番目のタスクが面倒です。SFの場合、特別なことは何もありません。URLを追加するだけで、フォームから必要なすべての情報を引き出すことができます。これらを行うには、フォームに1つの送信ボタンに関連付けられた2つのアクションが必要です(2つのフォームまたは2つのボタンを持つことはできません)。

したがって、私のraf.phpファイルにはこのフォームがあり、raf-submitted.php送信後、成功/エラーメッセージとその他の必要な情報を表示するページにリダイレクトする必要があります。

フォーム(ここ からアイデアを得ました)

 <form id="referralForm" name="referralForm" autocomplete="off" enctype="multipart/form-data" method="POST">

 <input id="saveForm" name="saveForm" class="field-submit" type="button" value="Submit" style="padding-left:20px" width="100" tabindex="23" onclick="FormSubmission(); SalesForceSubmission();" />

 </form>

JavaScript:

 $(document).ready(function()
 { 
    function SalesForceSubmission()
    {
       document.referralForm.action = "https://someAddress.salesforce.com/";
       document.referralForm.submit();          
       return true;
    }

    function FormSubmission()
    {
       document.referralForm.action = "raf-submitted.php";
       document.referralForm.submit();          
       return true;
    }
  });

このraf-submitted.phpファイルは、フォームの検証、データベースの挿入、および電子メールの問題を処理します。

動いていない。私もこれらを試してみましたが、うまくいきませんでした:

誰か助けてくれませんか?ありがとうございました!

4

5 に答える 5

2

フォームが送信されると、そのページには表示されなくなります。移動しました。

これを行うもう 1 つの方法は、最初のアクションを AJAX 経由で送信し、次にフォームを自然に 2 番目の宛先に送信することです。ほとんどの AJAX コードは既に用意されているため、jQuery を使用して AJAX 呼び出しを行うことをお勧めします。

もう 1 つのオプションはraf-submitted.php、フォーム データを受信したら、サーバーから Salesforce サーバーに POST を実行することです。参照: PHP スクリプト内で別のページに投稿する

于 2013-01-30T21:44:07.360 に答える
2

クライアント側でこれを行う唯一の方法は、AJAX を使用することです。
サーバー側でSFを行う方が良いです(アクセスできる場合はDBを介して、サーバー側でCURLを介して少なくともデータを送信する場合はWebサービスを介して)。
クライアント側で送信の1つが失敗する可能性があります(2番目の送信が失敗した場合は悪いようです-最初のリクエストは2番目の送信が適切に行われていないことを認識していません)。


編集:
CURL を使用して投稿するためのサンプル コード:と入力
を含むフォームがあると仮定します。texthidden

<form method='post' action='http://your.sf.site/your_sf_submit_page.php'>
<input type='text' name='field1'/>
<input type='hidden' name='field2'/>
</form>

次のように CURL を使用して送信できます。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://your.sf.site/your_sf_submit_page.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"field1=value1&field2=value2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);

その後$server_output、フォームが正しく送信されていることを確認できます。

于 2013-01-30T21:49:38.517 に答える
0
function fun_atualizar() {
    document.orcamento.action = "atualizar_orcamento.php";
    document.orcamento.submit();
    return true;
}

function fun_evento() {
    document.orcamento.action = "Evento_orc.php";
    document.orcamento.submit();
    return true;
}

<input  type="button" value="Atualizar" style="padding-left:20px" width="100" tabindex="23" onclick="javascript:fun_atualizar();" />

<input  type="button" value="Evento" style="padding-left:20px" width="100" tabindex="23" onclick="javascript:fun_evento();" />
于 2013-09-12T13:01:23.030 に答える
0

raf-submitted.php ページを制御できる場合、(ローカル検証後) jQuery.ajax を使用してページを呼び出し、フィールド値をクエリのパラメータとして提供するフォームの onclick アクションがあることをお勧めします。文字列 (GET を使用している場合) を使用する場合は、送信プロセスが引き続きデータを SalesForce に渡すことを許可します。

ただし、Salesforce アクティビティを非表示にする必要がある場合は、type=POST を使用して同じ方法で呼び出し、完了後にフォームに渡すことができます。

于 2013-01-30T21:49:21.137 に答える