1

我的 cfm 页面上有一个表单,即在 SQL 数据源中插入一个新行。cfm 页面承载表单 - 提交时,-action.cfm 页面插入数据并将用户重新定位到列出新信息的页面。我遇到的问题是当我提交我得到的表单时:: 元素 NEWUSERID 在 FORM 中未定义。

insertScores.cfm 页面上的表格:

<form method="post" action="insertScores-action.cfm">
<table>
  <tr>
    <td>User ID</td>
    <td><input name="newUserID" type = "text" size = "50"></td>
  </tr>

  <tr>
    <td>First Name</td>
    <td><input name="newFirstName" type="text" size="50"></td>
  </tr>
  <tr>
    <td>Last Name</td>
    <td><input name="newLastName" type="text" size="50"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input name="newEmailAdd" type="text" size="50"></td>
  </tr>
  <tr>
    <td>Score</td>
    <td><input name="newScore" type="text" size="50"></td>
  </tr>
  <tr>
    <td>Pass Date</td>
    <td><input name="newPassDate" type="text" size="50" value="dd/mm/yyyy"></td>
  </tr>
  <tr>
    <td>Level</td>
    <td><input name="newLevel" type="text" size="50"></td>
  </tr>
  <tr>
    <td><input type="submit" value="Insert Scores"></td>
 </tr>
 </table>

insertScores-action.cfm 页面

<cfquery name="insertScores" datasource="staffwrite">
INSERT INTO protinfo_scores (
  userID
  , first_name
  , last_name
  , email
  , curr_score
  , curr_score_date
  , level
  )
VALUES (
    '#form.newUserID#'
  , '#form.newFirstName#'
  , '#form.newLastName#'
  , '#form.newEmailAdd#'
  , '#form.newScore#'
  , '#form.newPassDate#'
  , '#form.newLevel#'
  )
</cfquery>


<cfquery name = "queryScore" datasource="staff">
  SELECT userid, level
  FROM protinfo_scores
  WHERE userid LIKE '#form.newUserid#'
  AND level = '#form.newLevel#'
</cfquery>

<cflocation URL="newScore.cfm?userid=#url.userid#&level=#url.level#">

新分数.cfm

<center>
  <h2>Your ammendments have been made.</h2><hr>
</center>

<cfquery name = "queryScore" datasource="staff">
  SELECT first_name, last_name, email, curr_score, curr_score_date, userid, level
  FROM protinfo_scores
  WHERE userid LIKE '#URL.userid#'
  AND level = #URL.level#
</cfquery>


<cfoutput query="queryScore">

<table>
  <tr bgcolor=beige>
    <td>Name</td>
    <td width="40">#queryScore.first_name# #queryScore.last_name#</td>
  </tr>
  <tr>
    <td>Email</td>
    <td width="40">#queryScore.email#</td>
  </tr>
  <tr bgcolor=beige>
    <td>Username</td>
    <td width="100">#queryScore.userid#</td>
  </tr>
 <tr>
    <td>Level</td>
    <td width="100">#queryScore.level#</td>
  </tr>
  <tr bgcolor=beige>
    <td>Current Score</td>
    <td width="40">#queryScore.curr_score#</td>
  </tr>
  <tr>
    <td>Date Passed</td>
    <td width="40">#queryScore.curr_Score_date#</td>
  </tr>
</table>
</cfoutput>
4

2 回答 2

1

当提交时 -action.cfm 页面插入数据并将用户重新定位到列出新信息的页面

我无法从措辞中判断这是预期效果还是实际效果。如果它是实际效果,那么您的错误正在发生,newScore.cfm这是有道理的,因为表单范围内的数据在之后不会持续存在cflocation并且您尝试form.newUserID在输出表之后使用..

如果这是预期的效果而不是实际效果...

  1. 正如丹所说,您正在查看两个不同的文件。您显示来自的代码,insertScores-application.cfm但您的操作指向insertScores-action.cfm.
  2. 您问题中的代码不是完全复制/粘贴,甚至不是您的所有代码(</form>至少可以说您缺少一个标签)。在这种情况下,我建议向我们展示实际代码和错误消息。很多时候我看到element XXX is undefined in FROM(注意它说的是 FROM 而不是 FORM,当你盯着同一个东西几个小时时很容易错过)。错误消息将告诉您错误所在的行号。行号实际上是否在您发布的代码中?
于 2013-03-14T10:54:22.437 回答
0

我将我的更改<form></form>为 a <cfform></cfform>,现在一切似乎都可以正常工作。我的印象是这不会有任何区别,但显然确实如此。

于 2013-03-15T12:34:08.777 回答