更新html表中的特定行 - ColdFusion

时间:2013-01-31 23:14:04

标签: coldfusion coldfusion-9

我正在将查询中的数据输出到html表中进行表示。在桌子的右上角,我有一个“更新”按钮和一个“删除”按钮。

我想做的是:

  • 当我按下更新按钮时,会打开一个模态。在该模态中,我有一个表单,我希望从当前行预定义值并能够编辑特定行
  • 当我按行上的删除按钮时,我希望删除该行并重新加载页面

这是我的html表,右边的最后两列是按钮

 **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,以便在用户需要更改类别时获取数据库中的其他类别。
  • 因此,例如,如果我按下表格第二行的更新按钮,则此表单应在下拉菜单中显示Consultation,并在底部文本框中显示数字40
  • 可能有用的小注释,输出表的第一个查询也会输出一对唯一的id(id,surveyName,Category,Weight)。所以最后的更新查询就像是

    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>

更新 更清楚,因为我觉得我写得太多了。我需要在表单提交上调用一个模态。我需要用表单替换当前按钮,然后通过隐藏变量传递所有数据。问题是这不适合我。我在这里找到了另一个例子,但似乎没有用。 EXAMPLE

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法是在每行的末尾有两个表单。你已经有了按钮。其余的可以是隐藏的领域。

您的更新表单将具有启动弹出窗口的目标属性。由于您已经拥有查询中的值,因此只需将它们作为隐藏字段提交给弹出窗口。

您的删除表单将提交到当前的coldfusion页面。在页面的开头,你会有这样的事情:

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

这将帮助您入门。如果你想稍后改进它,你可以。

最后,一次做一件事。