2017-07-31 5 views
0

私はデータソースからデータを引き出す単純なフォームを持っています。私のアクションページで自分のフォームに作成したcfoutputクエリを引き出すことができるかどうか疑問に思っていましたか?POSTを使用して別のページでcfoutputクエリを実行しますか?

これを行うフォームを通じてPOSTを使用して個々のデータを取得する方法を知りました。

<cfparam name = "form.masternum" default=""> 

<cfquery name="reloForm" datasource="test"> <!---Not going to list out my real datasource ---> 
    SELECT [testData], [moreTestData] 
    FROM test.db 
    WHERE [ORDS##] = #URL.ORDS# 
</cfquery> 

<form method="post" action="emailaction.cfm"> 
    <label for="masternum">Master Number</label> 
    <input type="text" name="masternum" value="#reloForm.MASTER#"> 
    <input type="submit" value="SEND"> 
</form> 

これは、クエリ変数を取得するフォームを通じてname属性を使用して行うことができます。

私が送信ボタンを押すと、自分のアクションページでその変数を呼び出すだけで、その内容を出力します。

#form.masternum# 

しかし、私は別のクエリ名を作成したい場合は何を出力せず、それ単独ではなくCFOUTPUTクエリを使用して別のページに出力すること?私は何を試みたのだろうか。

<cfquery name="funstuff" datasource="test"> 
    SELECT [ITEM], [NOTE] 
    FROM fun 
    WHERE [FUNORD##] = #URL.FUNORD# 
</cfquery> 

<cfoutput query="funstuff"> <!--- How can i capture this information on my action page? this is my question ---> 
    <tr> 
    <td>#funstuff.ITEM#</td> 
    <td>#funstuff.NOTE#</td> 
    </tr> 
</cfoutput> 

たとえば、アクションページで#funstuff.ITEM#を呼び出しようとすると、マイページから500個の内部サーバーエラーが返されます。

答えて

0

あなたにはそれぞれ独自の長所と短所があります。ランダムな順序で:

クエリをセッションスコープに入れます。最大のプロは、それを一度書いて実行するだけです。不合理な点として、RAMの使用量が増加し、値が予期せず変更される可能性があります。

再利用可能な場所にクエリを記述します。これは、カスタムタグ、UDF、またはインクルードファイルです。プロはあなたが一度だけそれを書くことです。それは、データベースへの潜在的な不要なトリップだからです。

上記と同じですが、クエリをキャッシュします。余分な旅行をデータベースに保存しても、それを一度だけ書く必要があります。

他のオプションもあるかもしれませんが、私の心には何も来ませんでした。

+0

私のフォームページには、クエリ名のファイルを含めて、アクションページにも含めて、プルできるようにしましたか? – Curious13

+0

インクルードを使用するだけで十分です。ありがとうございました! – Curious13

1

これは答えよりも細長いコメントです。

私は100%あなたの質問が何であるか、またはそのフォームを提出することがアクションページの別のクエリとどのように関係しているのでしょうか。たぶん私は物事を誤解しているのかもしれない。しかし、あなたはそれが "500エラー"あなたが得ているのより意味を作るためにこれを試すことができます。

cftry/cfcatchブロック内でテストしたいすべてをラップしてから、エラーをダンプします。あなたのコードに何が間違っているかを具体的に教えてくれます。

<cftry> 
<cfquery name="funstuff" datasource="test"> 
    SELECT [ITEM], [NOTE] 
    FROM fun 
    WHERE [FUNORD##] = #URL.FUNORD# 
</cfquery> 

<cfoutput query="funstuff"> <!--- How can i capture this information on my action page? this is my question ---> 
    <tr> 
    <td>#funstuff.ITEM#</td> 
    <td>#funstuff.NOTE#</td> 
    </tr> 
</cfoutput> 

<cfcatch> 
<cfdump var="#cfcatch#"> 
</cfcatch> 
</cftry> 
関連する問題