2016-12-07 12 views
1

私はRFQのためにユーザーによって更新される簡単な「カート」を持っています。彼らは配列がうまく動作し、良い作品を追加します。しかし、何らかの理由で私はテーブルにデータを正しく出力できないようです。私のループカウンタは動作しています:)私のコードを参照してください。出力に続いて動作するようにしようとしています。これは単純で、私はそれを考えています。CFアレイの出力

おかげ

<cfif isDefined("url.Series")> 
    <cfset arrayAppend(session.cart, {Series = URL.Series , Style = URL.Style , Ohm = URL.Ohm , Notes = URL.Notes})> 
</cfif> 

<a href="cleararray.cfm">Clear Array</a><br /> 
<a href="Stylesearch.cfm">Style Search</a><br /><br /> 

<h1><b>DEBUG:</b></h1> 
<!--- Display current contents of cart ---> 
<cfdump var="#session.cart#" label="Cart Items"> 
<br /> 

<!--- Display items in cart in Table format ---> 
<table class="tftable" border="1"> 
    <tr> 
     <th>Series</th> 
     <th>Style ID</th> 
     <th>Exact &#8486;</th> 
     <th>Description</th> 
     <th>Notes</th> 
     <th>Quantity</th> 
     <th>Update</th> 
     <th>Delete</th> 
    </tr> 
    <cfloop index="Series" from="1" to="#arraylen(session.cart)#"> 
     <tr> 
     <td>#session.cart[Series]#</td> 
     <td>#Style#</td> 
     <td>#Ohm#</td> 
     <td>Test Description</td> 
     <td>#Notes#</td> 
     <td>Test Quantity</td> 
     <td>X</td> 
     <td>^</td> 
     </tr> 
    </cfloop> 
</table> 

CFDump

答えて

1

あなただけのcfoutputであなたのcfloopをラップする必要があります。

<cfoutput> 
<cfloop index="Series" from="1" to="#arraylen(session.cart)#"> 
    <tr> 
    <td>#session.cart[Series]#</td> 
    <td>#Style#</td> 
    <td>#Ohm#</td> 
    <td>Test Description</td> 
    <td>#Notes#</td> 
    <td>Test Quantity</td> 
    <td>X</td> 
    <td>^</td> 
    </tr> 
</cfloop> 
</cfoutput> 

は個人的に私はまた、あなたのカートの構造体のシリーズのキーと後で混乱するかもしれないこととして、「シリーズ」より異なるようにループインデックスを変更します。

アウトプットsession.cart[Series]の最初のセルはカートの最初の構造体になりますが、私が望むと思うのは session.cart[Series].Seriesです。私は、例えばsにループインデックスを変更する理由である

<cfoutput> 
<cfloop index="s" from="1" to="#arrayLen(session.cart)#"> 
<cfset thisRow = session.cart[s] /> 
<tr> 
<td>#thisRow.Series#</td> 
<td>#thisRow.Style#</td> 
<td>#thisRow.Ohm#</td> 
<td>Test Description</td> 
<td>#thisRow.Notes#</td> 
<td>Test Quantity</td> 
<td>X</td> 
<td>^</td> 
</tr> 
</cfloop> 
</cfoutput> 

お役に立てば幸いです。

+0

Phipps、ありがとうございました。私はちょっとしたフォローアップの質問があります。私は各行の更新関数を書くつもりですが、配列の適切な行を扱う必要があるので、これをどうやって行うのですか?これは、テーブルの最後の2つのフィールドが(更新/削除)になります。前もって感謝します。 –

+0

これを行うにはいくつかの方法があります。アイテムの追加/更新/削除を処理するcart.cfcを作成する方がよいでしょう。このようなもの:[シンプルショッピングカート](https://www.bennadel.com/blog/637-ask-ben-creating-a-simple-wish-list-shopping-cart.htm)これはちょっと古いですが、原則はそこにあります。その後、更新ごとにサーバーに戻って(ページ全体をリロードする)、非同期のjavascript要求を使用してバックグラウンドでデータをポストし、ページをリロードせずにカートを更新するかどうかを決定する必要があります。 – Phipps73

+0

サイドノートでは、インデックス番号を必要としない場合は、 'from/to'の代わりに' array'ループを使うこともできるので、 'index'は位置ではなく現在の配列要素になります。 – Leigh

関連する問題