0

表現のためにクエリからhtmlテーブルにデータを出力しています。テーブルの右隅に「更新」ボタンと「削除」ボタンがあります。

私がやろうとしていることは次のとおりです。

  • 更新ボタンを押すと、モーダルが開きます。そのモーダル内に、現在の行の値を事前定義し、特定の行を編集できるようにするフォームがあります
  • 行の削除ボタンを押すと、その行を削除してページをリロードしたい

これは私の html テーブルです。右側の最後の 2 列はボタンです。

 **Survey Name**    **Category**    **Weight**  **Update**  **Delete**
 Consultation   Ambiance                 20         Update  Delete
 Consultation   Consultation             40         Update  Delete
 Consultation   Follow Up                40         Update  Delete

これは、テーブルを生成する最初のクエリです

<cfquery name="categories" datasource="#dsn#">
        select s.name, s.id as surveyid, rc.categoryname, rc.id as categoryid, sc.cweight 
        from survey_categories sc
        join surveys s on s.id = sc.surveyidfk
        join rating_categories rc on rc.id = sc.categoryidfk
        where sc.surveyidfk='#form.survey#'
    </cfquery>

これは、「更新」を押したときにアクセスしているフォームです

  • このフォームには、ユーザーがカテゴリを変更する必要がある場合に備えて、データベースにある残りのカテゴリを取得するための select タグの周りに追加の cfloop があります。
  • したがって、たとえば、テーブルの 2 行目の更新ボタンを押した場合、このフォームConsultationにはドロップダウン メニューと40下部のテキスト ボックスの番号が必要です。
  • テーブルを出力する最初のクエリは、ペア (id、surveyName、Category、Weight) を持つ一意の ID も出力します。したがって、最終的な更新クエリは次のようになります

    update categories set category='Example', weight='30' where id='345'

これがどれほど役立つかわかりません。

<cfoutput>
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
        <h3 id="myModalLabel">Update</h3>
      </div>
      <div class="modal-body">
         <form name="update" action="updateSCpair.cfm" method="post">
            <input type="text" value="#categories.name#" class="input-xlarge" disabled> <br />
            <select name="categories">
                <cfloop query="ratingCat">
                  <option value="#ratingCat.id#" >#ratingCat.categoryName#</option>
                </cfloop>
            </select>
            <br />
            <input  class="span3" type="number" placeholder="Enter Category Weight" required >

      </div>
      <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button class="btn btn-primary">Save changes</button>
        </form>
    </div>

    </cfoutput>

書きすぎたと思うので、より明確にするために更新してください。フォーム送信時にモーダルを呼び出す必要があります。現在のボタンをフォームに置き換えてから、すべてのデータを隠し変数に渡す必要があります。問題は、これがうまくいかないことです。ここで別の例を見つけましたが、うまくいかないようです。

4

1 に答える 1

3

最も簡単な方法は、各行の最後に 2 つのフォームを配置することだと思います。あなたはすでにボタンを持っています。残りは隠しフィールドにすることができます。

更新フォームには、ポップアップを起動するための target 属性があります。クエリの値は既にあるので、非表示フィールドとしてポップアップに送信するだけです。

削除フォームは、現在の coldfusion ページに送信されます。ページの先頭には、次のようなものがあります。

<cfif StructKeyExists(form, "DeleteMeOrSomethingLikeThat")>
code to delete record
</cfif>

これで始められます。後で改善したい場合は、それを行うことができます。

最後に、一度に 1 つのことを行います。

于 2013-02-01T00:15:08.887 に答える