1

その結果をCRM(顧客関係管理)に出力するジョブアプライアンスフォームを開発しています。

私の問題は、クライアントが、フォームのさまざまなフィールドに入力した後、CRM の 1 つのフィールドに「住所、郵便番号、および地域」フィールドをまとめて出力することを望んでいることです。

したがって、ユーザーが送信をクリックすると、各フィールドの値が取得され、作成した非表示フィールドに入力されるように、php を使用する必要があると考えました。私はphpの専門家ではないので、うまくいきません。本当にCRMに値を出力していません

これは私がこれまでに持っているものです:

<form action="https://service.capsulecrm.com/service/newlead" method="post">

    <input name="morada" id="morada" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 397px;" value="" type="text">

    <input name="postal" id="postal" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 437px;" value="" type="text">

    <input name="local" id="local" maxlength="255" title="" style="border-style: solid; border-width: 1px; border-color: #cccccc; position: absolute; margin: 0px; padding: 0px; width: 220px; height: 20px; font-family: Tahoma; font-size: 11px; color: #333333; background-color: #ffffff; z-index: 1; left: 189px; top: 467px;" value="" type="text">


    <?php if ($_POST['submit']) {

    $addressmorada = $_POST['morada'];
    $addresspostal = $_POST['postal'];
    $addresslocal = $_POST['local'];

    echo "<input type='hidden' name='STREET' value='".$addressmorada. " " .$addresspostal. " " .$addresslocal."' />";

    }

    ?>

<input name="submit" type="submit" value="Submit" style="
    border-style: none; border-width: 0px; border-color: #888888; position: absolute; margin: 0px; padding: 0px; width: 93px; height: 33px; z-index: 1; 
    left: 433px; top: 1773px;
    text-indent: 99999999999999px;
    background: green;
    cursor: pointer;
">


</form>

私のPHPコードを説明しようと思います.

  1. 送信時に関数を呼び出しているifステートメント。
  2. 変数は異なる入力値を取得します。
  3. すべての情報が 1 つのフィールドで CRM に出力されるように、変数を呼び出して入力フィールド タイプを非表示にします。

大きな問題は 3 番にあると思います! 助けていただければ幸いです。私の英語が下手ならごめんなさい、それは私の母国語ではありません。

4

3 に答える 3

2

2 つの問題:

1、

   if ($_POST['submit'])

エラーがスローされます:データNotice: Undefined index: submit in ...がない$_POST場合。

に変更する必要があります

if (isset($_POST['submit']))

2という属性$_POST['submit']がないため、発生することはありません。これを「送信」ボタンに追加する必要があります。namesubmit

<input type="submit" value="Submit" name="submit" style="[STYLES_HERE]">
于 2013-08-05T17:06:11.263 に答える
1

あなたには名前がありません。

<input type="submit" value="Submit" name = "submit" >


if ($_POST['submit'])があります。

したがって、ボタンの名前は送信する必要があります。それ以外の場合は、if ステートメントには入りません。デバッグの目的で、if ステートメントのすべての値を出力してみてください。その役に立ちます。

于 2013-08-05T16:58:59.610 に答える
0

サーバー側とクライアント側のコードを混同しています。以下に簡単な説明を示しますが、HTTP と Web サーバーの動作について詳しく説明する必要があります。

  • ユーザーAがページをリクエストすると、HTTPリクエストがサーバーに送信されます
  • このリクエストは Web サーバー B によって処理されます
  • いくつかのルール (ファイル拡張子、ファイルの場所など) に従って、Web サーバーは単純にファイルを取得してクライアント A に送信するか (プレーン HTML ファイルの場合)、または (PHP) を介して実行するかを決定できます。最初にインタープリターを呼び出してから、結果をクライアントに送信します。
  • いずれにせよ、クライアント A は HTML のみを受け取ります。PHP はこの時点で B によってすでに実行されています。

したがって、ユーザーはフォームを含むページをリクエストします。この時点では、彼はまだ何も送信していないため、PHP インタープリターは何も取得せず$_POST、非表示の入力は空です。

ユーザーはフォームに入力して送信します。これにより、データを含む新しい HTTP リクエストがトリガーされます。しかし、もちろん、非表示の入力はまだ空であり、PHP が既に実行されているため (そしてクライアント側になることはありません)、入力されることはありません。

あなたがする必要があるのはどちらかです

  • アクセス権がある場合は、ターゲット スクリプト ( https://service.capsulecrm.com/service/newlead ) を変更して、フィールドを結合します。
  • できない場合は、フォームのターゲットである中間 PHP スクリプトを追加し、フィールドを結合して、HTTP リクエスト自体を (curl などを使用して) newlead に送信します。
  • または、それにあまり時間をかけたくない場合は、クライアント側のコード、つまり Javascript を使用して、非表示の入力を埋めます。ただし、フォームが正しく送信されるかどうかはわかりません (ユーザーが Javascript を無効にすることを選択するか、クライアントがそれをまったく処理しない可能性があります。これは点字デバイスでは一般的です)。
于 2013-08-05T17:06:56.713 に答える