フォーム コントロールを動的に作成するフォーム コードがあります。動的に生成された各フォーム フィールドを個別のテーブル行に挿入する必要があります。たとえば、フォームに対して 5 つの質問が生成された場合、ユーザーは回答を入力し、質問 ID と回答をテーブル Questions: questionID, Answers に挿入する必要があります。
FORM
ループして結果を取得するにはどうすればよいですか? これは私が試したものです:
<cfform name="form" method="post" action="TestQA.cfm">
<table border="0">
<tr>
<td> </td>
<td>question</td>
<td> </td>
</tr>
<cfoutput query="rsQuestions">
<tr>
<td><cfinput type="hidden" name="question_id"
id="question_id"
value="#rsQuestions.question_id#">
</td>
<td>#rsQuestions.question#</td>
<td>
<cfif #rsQuestions.question_type_id# eq 1>
<cfinput type="text" name="answer"
message="#rsQuestions.Message#"
tooltip="#rsQuestions.Tooltip#"
range="#rsQuestions.range#"
required="Yes"
size="#rsQuestions.Size#"
method="Post">
</cfif>
</td>
</tr>
</cfoutput>
<tr>
<td> </td>
<td> </td>
<td><cfinput type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
<br />
</cfform>
質問をテーブルに挿入する手順:
<cfloop collection=#form# item="field">
<cfif field neq 'submit'>
<cfquery datasource="dstest">
INSERT INTO dbo.group_member_questionnaire_answers (question_id, answer)
VALUES(#form.Question_ID#, #form.Answer#)
</cfquery>
</cfif>
</cfloop>
<cfoutput>Answers inserted successfully into database</cfoutput>
私はこれにステートメントを調整しました:
<cfloop from="1" to="#val(form.TotalFields)#" index="x">
<cfquery datasource="dsED">
INSERT INTO dbo.group_member_questionnaire_answers (question_id, answer)
VALUES(#form.Question_ID#, #form.Answer#)
</cfquery>
</cfloop>
This is the result: Error Executing Database Query.
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid column name 'no'.
The error occurred in
7 : <cfquery datasource="dstest">
8 : INSERT INTO dbo.group_member_questionnaire_answers (question_id, answer)
9 : VALUES(#form.Question_ID#, #form.Answer#)
10 : </cfquery>
11 :
________________________________________
SQL INSERT INTO dbo.group_member_questionnaire_answers (question_id, answer) VALUES(62,63, 90,no)
DATASOURCE dsED
VENDORERRORCODE 207
SQLSTATE 42S22
Resources: