それで、私はインライン (正しい用語ですか?) ColdFusion コードを使用してすべてのページを実行してきましたが、基本を十分に理解し、次のステップに進みたいと思うところまで来ました。多くの相互参照、調査、および試行錯誤の後、フォーム ページ (crud.cfm) にユーザー名とパスワードを入力できるようにすることを目的とした次の 4 つのページを思いつきました。 、送信後、新しく入力されたデータと過去のエントリを表示するページにユーザーをリダイレクトします。
シンプルなインライン コードと Application.CFM を使用してこれらすべてを行うことができますが、現在、いくつかの異なるページにまたがってコードのスキャドを書き直したりコピーして貼り付けたりしていることに気付いているため、今後はより OOP/モジュラーなアプローチに移行したいと考えています。「crud.cfm」から送信したときに表示されるエラーは次のとおりです。
「cfinvoke タグのコンポーネント属性に無効な値があります。」
ハッシュなしで、大文字の「A」なしで試してみましたが、役に立ちませんでした。ここに私の非動作コードがあります:
アプリケーション.cfc
<cfcomponent output="false">
<cffunction name="insertrecord" access="public" output="false">
<cfargument name="data" type="struct" required="true">
<cfquery name="create" datasource="test">
INSERT INTO logins(
username,
password)
VALUES(
'trim(form.username)',
'trim(form.password)')
</cfquery>
</cffunction>
</cfcomponent>
crud.cfm
<h3> Enter new user/password </h3>
<cfform name="thisform" method="post" action="procpage.cfm">
Username:<cfinput type="text" name="username" value="">
Password:<cfinput type="password" name="password" value="">
<input type="submit" value="submit">
</cfform>
procpage.cfm
<cfif !StructIsEmpty(form)>
<cfinvoke component="#Application#" method="insertrecord">
<cfinvokeargument name="data" value="#form#">
</cfinvoke>
</cfif>
<cflocation url="resultpage.cfm" addtoken="no">
結果ページ.cfm
<cfquery name="read" datasource="test">
SELECT * FROM logins
</cfquery>
<table>
<tr>
<th>LOGIN</th>
<th>USERNAME</th>
<th>PASSWORD</th>
</tr>
<cfloop query="read">
<tr>
<td>#read.login#</td>
<td>#read.username#</td>
<td>#read.password#</td>
</tr>
</cfloop>
</table>
ColdFusion バージョン 8、MSSQL 2005 データベース。ご協力いただきありがとうございます。ご回答をお待ちしております。