私は次のコードを持っています:
<cfif SideSell neq "">
<cftry>
<cfif listlen(SideSell, ",") gt 0>
<cfset sidesellvalid = true>
<cfelse>
<cfset sidesellvalid = false>
</cfif>
<cfcatch type="any">
<cfset sidesellvalid = false>
</cfcatch>
</cftry>
<cfif sidesellvalid>
<cfset AddPartNumber = "">
<cfset AddDescription = "">
<cfset AddQuantity = "">
<cfset AddPrice = "">
<cfset OptionPrice = "">
<cfset AddItem = "">
<cfloop list="FORM.SideSell" index="SideSellListIndex" delimiters=",">
<cfquery name="qSideSellParts" datasource="Pascal">
SELECT * from Part WHERE PartNumber = <cfqueryparam cfsqltype="cf_sql_varchar" list="yes" separator="," maxlength="45" value="#ListGetAt(SideSell, SideSellListIndex, ',')#">
</cfquery>
<cfset AddPartNumber = "#qSideSellParts.PartNumber#">
<cfset AddDescription = "#qSideSellParts.SubCategory#">
<cfset AddQuantity = "1">
<cfset AddPrice = "#qSideSellParts.PartPrice1#">
<cfset OptionPrice = "0">
<cfset AddItem = "Add To Cart">
<cfinclude template="checkpart.cfm">
</cfloop>
</cfif>
</cfif>
ただし、CFは型キャスト例外をスローしています。
「値FORM.SideSellを数値に変換できません。」
SQL行で:
SELECT * from Part WHERE PartNumber = <cfqueryparam cfsqltype="cf_sql_varchar" list="yes" separator="," maxlength="45" value="#ListGetAt(SideSell, SideSellListIndex, ',')#">
私が試したテストデータには「PTI19-1」と「PTI19-1、PTI 19-2」が含まれているため、リストの項目数に関係なく問題が発生します。引用符がない、または誤用しているだけですか?
編集:私のテストサーバーでCF9を実行し、本番サーバーでCF8を実行します。<cfdump>
タグを使用して、データが期待どおりであることを確認しました。