0

現在、バックエンドでマーチャント ソリューション サービスを使用するプロジェクトに取り組んでいます。残念ながら私はだまされました。当初、サイトの読み込み後に「生成」したフォーム フィールドにデータを入力する必要はないと考えていました。そこで、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');">
4

1 に答える 1

1

あなたの質問は、CF、および実際にはアプリケーションサーバーがどのように機能するかについての誤解を示していると思います。ブラウザーはサーバーにリクエストを送信し、サーバーはコールドフュージョンを読み取りますが、それを使用して html を生成し、ブラウザーに送り返します。別のページを要求し、サーバーへの別のラウンドトリップを行わなければ、coldfusion に何かをしてもらう方法はありません。

しかし、恐れる必要はありません。あなたにできることがあります。JS フレームワークをロードし、cfselect コードのみを含む cfm に対して AJAX コマンドを起動します。JS を使用してページに直接挿入できる HTML を返すことができます。

于 2012-10-05T19:53:50.747 に答える