2016-10-13 4 views
0

EQ演算子を2つの等しいフィールドで使用すると、私の人生の間、私にはCFIFという結果が得られません。以下はCFのコードです:私は、変数の値を表示するオプションのテキストに#rc.getPartner.sales_contact_id#を入れ2つの等しい値を正しく比較するCFIF式を取得できません

<select class="form-control" name="sales_contact_id"> 
    <cfoutput query="rc.getPartnerContacts"> 
     <cfif rc.getPartnerContacts.id EQ rc.getPartner.sales_contact_id> 
      <cfoutput><option value="#rc.getPartnerContacts.id#" selected="selected">#fname# #lname#</option> 
      </cfoutput> 
     <cfelse> 
      <cfoutput><option value="#rc.getPartnerContacts.id#">#fname# #lname# #rc.getPartner.sales_contact_id#</option> 
      </cfoutput> 
     </cfif> 
    </cfoutput> 
</select> 

そして、これはHTML出力です:

<select name="sales_contact_id" class="form-control"> 
    <option value="1">David Elliott 2</option> 
    <option value="2">James Knight 2</option> 
    <option value="3">Fred Bloggs 2</option> 
    <option value="4">John Doe 2</option> 
    <option value="5">Jane Smith 2</option> 
</select> 

rc.getPartner.sales_contact_idフィールドの値がrc.getPartnerContacts recordsetの「ジェームズ・ナイト」レコードのidフィールドと同じ2れています。 James Knightレコードの場合は、CFIFステートメントをtrueにする必要があります。このオプションはドロップダウンリストのデフォルトです。 val()を試してみましたが、もう一方から1つ減算してからCFIF EQ 0を使用しても問題はありません。

私はこれが本当に簡単な間違いだと確信していますが、私はそれを見ることができません!

+0

フレームワークに若干の変更が加えられている必要があります。貼り付けたコードの量を減らすためのわずかな変更がありましたが、そうではありませんでした。 –

+0

'rc.getPartnerContacts.id.getClass()。getName()'と 'rc.getPartner.sales_contact_id.getClass()。getName()'をチェックしてください。 – Alex

答えて

0

手のひらを顔に当てるモーメント - <cfoutput><cfoutput>は、問題を引き起こしました。

0

これは書式設定されたコメントです。疑わしいときは、あなたのデータを見てください。

<cfdump var="#rc.getPartnerContacts#"> 
<cfoutput query="rc.getPartnerContacts"> 
<cfif rc.getPartnerContacts.id EQ rc.getPartner.sales_contact_id> 
yes 
<cfelse> 
no ID is #id# and sales contact id is #rc.getPartner.sales_contact_id# 
</cfif> 
<br> 
+0

..明白で視覚的な違いがない場合は、文字を調べてアスキー値を比較してください。 – Leigh

関連する問題