1

フォーム データを送信する前にワードプレス データベースに保存しようとしています。助けてください。データベースに挿入する私のコードとphpコードは次のとおりです。

<form method="post" action="https://app.icontact.com/icp/signup.php" name="icpsignup" 

id="icpsignup1030" accept-charset="UTF-8" onsubmit="return verifyRequired1030();">
<input type="hidden" name="redirect" value="http://www.123.com/thank-you.html">
<input type="hidden" name="errorredirect" value="http://www.123.com/error.html">
<input type="hidden" name="listid" value="16360">
<input type="hidden" name="specialid:16360" value="MA3A">

<input type="hidden" name="clientid" value="1259610">
<input type="hidden" name="formid" value="1030">
<input type="hidden" name="reallistid" value="1">
<input type="hidden" name="doubleopt" value="0">
<input type="text" name="fields_email" size="21" style="padding:5px;">
<input type="image" name="submit" src="signup button top.png" value="" height="32px">

</form>

そして、DB に挿入するコード:

<?php   
    require_once('../../../wp-config.php');
    global $wpdb;
    $table_name = "icontact_emails";
    $email = $_POST[fields_email];
    if (trim($email) != ""){
    $wpdb->insert($table_name, array('email' => $email, 'timestamp'=> date("Y- m-d h:i:s")));
    }
?> 
4

4 に答える 4

1

あなたの質問から、あなたが本当に言っていることを推測できます。私が管理していない別のサイトに送信する前に、このフォームをデータベースに保存しようとしています。つまり、データをサード パーティに送信する前に、独自のデータベースに保存する必要があります。

その場合は、次のことをお勧めします。

フォームの onSubmit イベント ( <form onSubmit="YourJavasScriptMethod();">) を使用します。JQueryと $.ajax() を使用して、すべてのフォーム入力を読み取り、値をデータベースに保存できる独自のスクリプトに送信します。onSubmit メソッドの最後で必ず true を返して、ブラウザーがフォームの送信を続行するようにしてください。

疑似コードの例を次に示します。

<form id="myForm" onSubmit="SaveToMyOwnDatabase();">

    <input />... //your inputs

</form>

そしてあなたのJavaScript:

function SaveToMyOwnDatabase()
{
    // Create Json object by selecting each of the form inputs
    // Call $.ajax and submit the Json to your script which processes the json

    return true;
}
于 2012-11-15T20:27:45.497 に答える
1

フォームを AJAX 経由で送信するか、従来の方法で送信するかに関係なく、「送信」がサーバーに転送する唯一の方法です。違いはありません。

これはクライアント サーバー モデルであることを忘れないでください。フォームはクライアント上にあり、DB はサーバー上にあります。

于 2012-11-15T20:13:15.087 に答える
0

解決策は簡単だと思います。フォームをPHPページに送信します。1)データベースに保存し、2)必要な場所に送信します。あなたの場合、最も単純で最も使用されているソリューションです。

于 2012-11-15T20:53:36.327 に答える
0

Contact Form 7 (WP プラグイン) の使用をお勧めします。と呼ばれるこれを行うために使用できる組み込みの PHP フックがありますwpcf7_before_send_mail。すべてのコンタクトフォームデータを含むオブジェクトをカスタム関数に渡します。これを使用して、データベースへの書き込みやその他のサーバー側の操作を実行できます。これは (本当に) 短い例です (これは functions.php にあります):

add_action( 'wpcf7_before_send_mail', 'save_contact_to_db' );
function save_contact_to_db( $cf7 ) {
    $email = $cf7->posted_data['fields_email'];
    // put database writing stuff here
}

ここにもう少し情報があります。また、このリンクは、あなたが求めているのとまったく同じことを行う方法について話し合っている人々であるため、役立つはずです。CF7またはJetpackフォームの送信をデータベースに自動的に書き込むプラグインもありますが、私はそれを使用したことがないのでコメントできません. 一般的には、これには contact form 7 を使用することをお勧めします。特に、サーバー上にない php スクリプトにフォームの投稿データを送信しているためです。

于 2012-11-15T20:26:26.900 に答える