0

私は友人が取り組んでいるウェブサイトを手伝っています。彼は、ColdFusion Web サイトの保守を担当していました。彼は主に Web デザイン担当者で、私のバックグラウンドは asp.net です。

私が抱えている問題は、彼らが商品をカートに追加できるようにしたいということです。これをすばやく達成するために、既存の「バスケットに追加」アクションを使用するつもりでした。問題は、サイトが通常 という名前の非表示フィールドを使用してproductIdいるのに、クイック エントリが ModelID を使用している場合にあります。

私の計画は SQL バックエンドから を取得することでしたがproductID、試行するたびに SQL エラーがスローされます。奇妙なことに、入力したモデル番号に関係なく、エラー メッセージには異なる番号が表示されます。ここにコードがあります

クイック入力 HTML:

<form action="index.cfm?do=action" method="POST" NAME="quick">   
  <b>Model Number:</b>
  <input type="Text" name="QuickEntryModelNumber" value="" size="8">&nbsp;&nbsp;&nbsp;
  <b>Quantity:</b>
  <input type="Text" name="Quantity" value="" size="2" maxlength="3"><br>
  <input type="hidden" name="wasWholesaler" value="#session.wholesaler#">
  <p align="right"><input type="Submit" name="action" value="Add to basket"></p>
</form>

カートに追加アクション:

<cfif structkeyexists(form,'ProductID')>
  <cfparam name="inProductID" type="integer" default = 0>
  <cfset inProductID = #form.ProductID#>
<cfelse>
  <cfparam name="inProductID" type="integer" default = 0>
  <cfquery name="GetID" datasource="#attributes.dsn#">
  SELECT P.ProductID
  FROM Products P
  WHERE P.ModelNumber = #form.QuickEntryModelNumber#
  </cfquery> 

  <cfoutput query="GetID">
    <cfset inProductID = #P.ProductID#>
  </cfoutput>
</cfif>

ProductID基本的に、フォームデータに存在するかどうかを確認していました。ProductIdDBからフェッチしない場合。スローされるエラーは次のとおりです。

[Macromedia][SQLServer JDBC Driver][SQLServer]Conversion failed when converting the varchar value '088254PC' to data type int.

モデル ID に何を入力しても、varchar 値は常に「088254PC」です。SQL クエリを取り出してproductId静的な値に設定すると、正しく機能します。

このページがごちゃごちゃしていることを指摘するにはいい機会だと思います。さまざまな時期に 20 人以上の人々が触れてきました。それは捨てて、ゼロから始める必要があります。そして、DBレイアウトはありません。はぁ。皆さんが私の道を投げることができるどんな助けも大歓迎です。ColdFusion は私のものではありません。

4

1 に答える 1