1

編集機能を備えたテーブルを作成しようとしていますが、古い値を更新された値に関連付けようとして問題が発生しました。私の解決策は、更新される値と一緒に古い値を渡す非表示の CFInput を含めることでした。その後、クエリは cfc 内で実行されます。

<cfform name="update" method="post">
<cfoutput query="allusers">
    <tr>
        <td>#username#</td>
        <td>#email#</td>
        <td>#securityID#</td>
        <td><a href="">DELETE</a></td>
    </tr>
        <td><cfinput name="oldUsername" value="#username#" type="hidden"></cfinput><cfinput name="updateUsername" value="New Value"></cfinput></td>
        <td><cfinput name="oldEmail" value="#email#" type="hidden"></cfinput><cfinput name="updateEmail" value="New Value"></cfinput></td>
        <td><cfinput name="oldSecurityID" value="#securityID#" type="hidden"></cfinput><cfinput name="updateSecurityID" value="New Value"></cfinput></td>
        <td><cfinput name="submit" type="submit"></cfinput>
    <tr>
        <cfdump var="oldUsername">
</cfoutput>

現在、エラーは発生していませんが、古い値が渡されているようには見えません。任意のヒント?

4

2 に答える 2

3

CFDUMP がハッシュ タグを使用していることを確認します。

<cfdump var="#oldUserName#"> 

そうしないと、変数の内容がダンプされません。

第二に、まだ oldusername を設定する機会がなかったときに、ColdFusion に「oldusername」を評価するように要求しています。CFINPUT タグを使用すると、これを HTML で JavaScript や Flash 拡張機能を備えた通常のタグに書き換えるだけです。そのため、form.oldusername は、次の CF テンプレート/URL への投稿が実行された後にのみ使用可能になります。また、変数のスコープ (フォーム、変数など) を設定して、交差しないようにすることを強くお勧めします (変数のスコープの検索順序を注意深く認識していない限り)。

于 2012-07-13T19:16:44.913 に答える
3

他の人があなたの答えを提供しています。私の答えは、あなたのフォームについてのアドバイスです。

非表示の cfinputs をテーブルに含めないでください。テーブルは展示品です。次のように、非表示の cfinputs を cfform タグのすぐ下に移動すると、はるかにうまく機能します。

<cfform name="update" method="post">
// NON DISPLAY STUFF
<cfinput name="oldUsername" value="#username#" type="hidden">
<cfinput name="oldEmail" value="#email#" type="hidden">
<cfinput name="oldSecurityID" value="#securityID#" type="hidden">
// DISPLAY STUFF
<table>
</table>
</cfform>
于 2012-07-13T19:34:46.293 に答える