現在、バックエンドでマーチャント ソリューション サービスを使用するプロジェクトに取り組んでいます。残念ながら私はだまされました。当初、サイトの読み込み後に「生成」したフォーム フィールドにデータを入力する必要はないと考えていました。そこで、JavaScript を使用して、ボタンをクリックするだけで追加のフォーム エントリを作成しました。これは問題なく機能し、ユーザーが入力したものは何でも使用して、ColdFusion からデータベースにアップロードできました。
しかし、経営陣は適切な設計要件を与えてくれませんでした。彼はちょうど戻ってきて、「OK、ドロップダウンをいくつか追加して、バージョンを選択できるようにしてください」と言った。ここで問題を確認できると思います。ここで、動的フォーム フィールドのいくつかにサーバーからの情報を入力する必要があります。したがって、クライアント側のソリューションは基本的に下手です。
だから私はあなたが友達を助けるために来ます。ColdFusion と同等の JS で行ったことの機能を引き続き保持する方法はありますか? あるに違いないことはわかっていますが、簡単な変換を見つけようとしています。
addInput.js ファイルは次のようになります。
// JavaScript Document
var counter = 0;
var UID = counter + 1;
var limit = 3;
function addInput(divName){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<input type='hidden' value='new' name='Detail_ID'>"
+ "<input type='text' value='' name='level' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>"
+"<input type='text' value='' name='offer' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>"
+"<input type='text' value='' name='disclaimer' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>";
"<CFSELECT NAME = 'version_no' QUERY = VersionList VALUE = 'code' DISPLAY = 'description' SELECTED = #version_no# ></CFSELECT>"
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
メインの .cfm ページに作成するボタンは次のとおりです。
<input type="button" value="Add Another VIP Level" onClick="addInput('dynamicInput');">