0

フォームの送信後、javascript 関数が呼び出されます。JS は、フィールドに入力されたデータがあるかどうかを確認します。成功すると、この CF ページを読み込みます。このページは ajax ロードであるため、#form.value# を使用していません。

クエリは、私を台無しにしているものです。残りのコードを何度も実行しましたが、エラーが発生するのは itemtitle 行がクエリに追加されたときだけです。

<cfset fieldList = url.searchFields>
<cfset fieldArray = listToArray(fieldList)>
<!--- The fieldArray has the form field names and values in a one-dimensional array
so every odd index is a title and every even index is a value. Hence the step=2 ---
<cfloop index="testing" from="1" to=#ListLen(fieldList)# step="2">
    <cfif fieldArray[testing] is 'searchID'>
        <cfset itemid = fieldArray[testing + 1]>
        <cfoutput>itemid = #itemid#</cfoutput>
    </cfif>
    <cfif fieldArray[testing] is 'searchName'>
        <cfset itemtitle = fieldArray[testing + 1]>
        <cfoutput>itemtitle = #itemtitle#</cfoutput>
    </cfif>
    <cfoutput>#fieldArray[testing]# #fieldArray[testing + 1]#</cfoutput>
</cfloop>

    <cfquery name="searchItems" datasource="#thedb#">
        SELECT *
        FROM spp_items
        WHERE avail_mode LIKE '0' 
        <cfif isDefined('url.categoryID')> AND categoryid = #url.categoryID#</cfif>
        <cfif isDefined('itemid')> AND itemid = #itemid#</cfif>
<!--- if I comment this next line out, the query works fine --->
        <cfif isDefined('itemtitle')> AND itemtitle LIKE #itemtitle#</cfif>
    </cfquery>

クエリが機能しないのはなぜですか? 繰り返しますが、フォーム送信、js 関数、coldfusion 構文がすべて有効であることを確認しました。この行がクエリに追加された場合にのみ、それが壊れます。ありがとう。

4

1 に答える 1

2

コードを見ると、itemtitle 値の周りに引用符を追加している場所がわかりません。現在、次のような行を実行しているようです。

AND itemtitle LIKE something

それ以外の:

AND itemtitle LIKE 'something'
于 2012-08-03T12:28:51.487 に答える