0

サイトでフォームが送信されたら、フォーム データを送信することに同意した多くのクライアントがいます。これは可能ですか?これを処理する最善の方法は何ですか? 私たちのサイトはコールドフュージョンで構築されていますが、クライアント サイトはさまざまです。

クライアントにスクリプトタグを追加して、フォームページにサーバーからのjavascriptファイルを含めてもらいました。また、フォーム ボタンに onClick イベントを追加して、フォームの送信時にこの JavaScript が呼び出されるようにしました。

これはJavaScriptファイルです:

function cpcshowElements(f) {
var formElements = "";
for (var n=0; n < f.elements.length; n++) {
    box = f.elements[n];
    formElements += box.name + ":" + f.elements[n].value + ",\n";
}
var track = new Image();
/*send data to us*/
track.src="http://XXX.net/form_record.cfm?form="+ formElements + "&self=" + this.location;  
}

フォーム送信時に cpcshowElements 関数が呼び出され、フォーム データをフォーマットし、それを XXX.net/... の末尾に追加して、その URL を呼び出します。form_record.cfm ページは、基本的にいくつかのチェックを行い、データをテーブルに挿入します。

このプロセスは機能しますが、一貫性はありません。データは常にデータベースに入るわけではありません。それが問題だ。データを失わずにこれを行う別の方法はありますか?

4

2 に答える 2

2

データベースに到達するデータは、チェーンのかなり深いところにあります。最初のステップは、リクエストが届かない場所を特定することです。弱いリンクを見つけて、その部分を修正します。

おそらく、この JavaScript 以外にも問題が発生している可能性があります。プロセスの各部分をテストし、問題がどこにあるかを突き止めます。おそらく、JavaScript には含まれていません。

于 2011-11-30T17:23:12.003 に答える
2

サーバー上のフォームが 以外の方法で送信されていないか確認してくださいonClick。フォームをヒットenterまたはタブとヒットenterまたはスペースバーで送信できる場合は、いくつかの送信が欠落しています。onSubmitではなくを使用すると、より一貫して動作しonClickます。

例:

<form onsubmit="your_function_here">

また、フォームが送信されてから別のページに移動する場合、JavaScript コードを実行する時間が十分にない可能性があります。その場合、関数に遅延を入れて、ページが蒸発する前に画像の GET リクエストを実行できるようにします。

于 2011-11-30T18:57:37.800 に答える