1

cfqueryでいくつかの FORM フィールドを使用している があります。WHERE最初の問題は、自分の Web ページにアクセスするたびに、ページの上部に cfquery コードが表示されることです。.cfm フォーム内のどこにクエリを配置し、フォーム内のいくつかのフィールドにアクセスすればよいですか? 2 つ目の問題は、WHERE句がフィールドの値を認識しているかどうかわからないことです。助けてください。

これが私のコードのセットアップ方法です:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<script language="javascript" type="text/javascript">
function addRow() { 
     var tbl = document.getElementById('tblSample');
     var lastRow = tbl.rows.length; 
     var iteration = lastRow - 3;
     var row = tbl.insertRow(lastRow);
     ........... etcetra.......
}
</script>
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<cfparam name="awardTotals" default="0" />
<cfparam name="search_award.GrandTotal" default="0" />
<cfif isDefined("form.Finalize")>
   <cfquery name="search_award" datasource="Test">
    SELECT g.Code1 + g.Code2 + g.Code3 + g.Code4 AS GrandTotal
      FROM Codes g 
     WHERE g.CodeNumber = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.CodeNum#">
       AND g.TestYear = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.TestYear#">
       AND g.SelType = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.SelType#"> 
       AND g.Jurisdiction = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.SelJuris#">    
   </cfquery>
   <cfif not search_award.GrandTotal is FundingTotals>
      <script type="text/javascript">
         alert('The totals do not match.');
   return false;       
</script>
   <cfelse>
<script type="text/javascript">
   alert('The totals match.');
   return true;
</script>      
    </cfif>
</cfif>
<p class=MsoNormal align=center style='text-align:center'><
<cfoutput>
  <form name="thisform" action="FormData.cfm" method="post">
    <p class=MsoNormal align=left style='text-align:left'>
      <input type="hidden" id="totalFields" name="totalFields" value="0">
      <input type="text" id="awardTotals" name="#search_award.GrantTotal#" value="0">
      <table width="1177" border="1" id="tblSample">
          <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes'>
          <th height="10"bgcolor="##cccccc" colspan="10"><h3>Jurisdiction:
             <select name="SelJuris" id="SelJuris">
                <option value = "0">---Jurisdictions---</option>
                <option value = "1">Allegany County</option>
                <option value = "2">Anne Arundel County</option>
                <option value = "3">Baltimore County</option>
                <option value = "4">Calvert County</option>
                <option value = "5">Caroline County</option>
             </select>
             <input name="CodeNum" id="CodeNum" type="text" size="20">  
             <input name="TestYear" id="TestYear" type="text" size="20"> 
             <input name="SelType" id="SelType" type="text" size="20">  
          </th>
          </tr>
</table>
<input type="Submit" name="Submit Form" value="Submit Form" onClick="">
<input type="Button" name="Finalize" value="Finalize" onClick="">
</form>
</body>
</cfoutput>
</html>

(コメントからの更新)

今、私はそのメッセージを受け取っていますElement CODENUM is undefined in FORM

4

3 に答える 3

3

この種のロジックが必要です。フォームが送信されている場合は、それに対して何かを行います。あなたの場合、次のようになります。

<cfif structkeyexists(form, "codenum")>
 query, process, display, etc
<cfif>
rest of page

また、さまざまな理由でクエリ パラメータを使用する必要があります。したがって、この:

g.CodeNumber = '#form.CodeNum#'

これになります:

g.CodeNumber = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.CodeNum#">

数値でない限り、データ型を変更します。

于 2013-03-22T19:10:13.273 に答える
1

cfquery の前後に条件を追加する必要があります。また、スペースなしで送信ボタンの名前を更新します

<input type="Submit" name="SubmitForm" value="Submit Form" onClick="">



   <cfif isDefined("form.SubmitForm")>

          <cfquery name="search_award" datasource="TrenaTest">
               SELECT g.Code1 + g.Code2 + g.Code3 + g.Code4 AS GrandTotal
                FROM Codes g 
              WHERE g.CodeNumber = '#form.CodeNum#'
              AND g.TestYear = '#form.TestYear#'
              AND g.SelType =  '#form.SelType#'
              AND g.JurisdictionID = '#form.SelJuris#'  
         </cfquery>

    </cfif>
于 2013-03-22T19:08:57.937 に答える
-1

すべての例で、標準のhtmlフォームタグが使用されていますが、クエリの条件はColdfusionフォームスコープで定義されていることに注意してください。私はあなたがに、そして好きに変換<form>する必要があると信じています:<cfform><input><cfinput>

      ...........
<cfinput type="Submit" name="SubmitForm" value="Submit Form" onClick="">
</cfform>
<cfif isdefined('form.submit')>
      .............
于 2013-03-23T03:35:12.467 に答える