2014-01-28 45 views
-2

我目前任何時候添加評論。它將評論添加到數據庫,但凍結了我擁有的按鈕,因此它們不起作用。雖然如果我刷新頁面,他們再次工作。添加評論後是否有辦法讓頁面刷新?目前下面是我的代碼。當添加評論時刷新頁面

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
     <title> 
      Untitled Document 
     </title> 

     <cfquery datasource="AccessTest" name="qTest"> 
      SELECT P.Account, P.Image, P.Image_ID, C.Remarks, C.Users, C.Accounts, C.Date_Time 
      FROM PictureDB AS P 
      INNER JOIN CommentsDB AS C 
      ON C.Image_ID = P.Image_ID 
      ORDER BY P.Image_ID 
     </cfquery> 

     <script src="http://code.jquery.com/jquery-2.0.3.js"> 

     </script> 

     <script> 
      $(document).ready(function(){ 
        var images = { 
        <cfoutput query="qTest" group="Image_ID"> 
         "#qTest.Image_ID#": { 
          "image": "#qTest.Image#", 
          "remarks": [ 
          <cfoutput> 
           "#qTest.Users#, #qTest.Date_Time# <br> #qTest.Remarks# <br> </br>", 
          </cfoutput> 
          ] 
         }, 
        </cfoutput> 
       }; 
        $("button").click(function(event){ 
        event.preventDefault(); 
        var id = $(this).data("id"); 
        var src = images[id].image; 
        var desc = images[id].remarks.toString(); 

        $("#theImage").attr("src", src).removeClass("hide"); 
        $("#theDescription").html(desc).removeClass("hide"); 
        }); 
       }); 
     </script> 
    </head> 

    <body> 


     <cflayout name="myAccordionLayout" type="accordion" width="600px"> 

      <cflayoutarea title="Bill Analysis" align="left"> 
         <cfoutput query="qTest" group="Account"> 
        <button data-id="#qTest.Image_ID#"> 
         #qTest.Account# 

        </button> 

       </cfoutput> 

        <cfform name="InsertComments" id="InsertComments"> 
      <fieldset> 
<div id="container"> 
    <div id="mainContent"> 


      <textarea name="Remarks" cols="55" rows="4" label="Tour Description" 
            required="yes" validateat="OnSubmit" message="Please enter your comment here" 
            enabled="no"> 
         </textarea> 
      <input type="text" name="Image_ID" message="Please enter Account Here." 
           validateat="onSubmit" required="yes" id="Image_ID" size="10" 
           maxlength="60"> 
         </input> 
     <input type="submit" name="insertComments" value="Insert Comments" id="submit"> 
         </input> 
     </div> 
    </div> 
    </fieldset> 
    </cfform> 
     <cfif IsDefined("form.InsertComments")> 

        <cfquery datasource="AccessTest"> 
         INSERT INTO CommentsDB (Remarks, Image_ID, Date_Time) 
         VALUES 
         (<cfqueryparam value="#form.Remarks#" cfsqltype="CF_SQL_LONGVARCHAR"> 

         , <cfqueryparam value="#form.Image_ID#" cfsqltype="cf_sql_integer"> 

         , <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp"> 

         ) 
        </cfquery> 

      </cfif> 


       <img id="theImage" class="hide"> 
     <div id="theDescription" class="hide"> 
     </div> 
      </cflayoutarea> 
      <cflayoutarea title="Operations Analysis"> 
     Test 
      </cflayoutarea> 
     </cflayout> 
     </body> 
</html> 

回答

1

您沒有在之前發佈過此代碼嗎?

爲什麼不在你執行查詢回頁面之後做一個<cflocation>?這樣用戶不會刷新並重新提交表單,它也解決了您的問題。

<cfif IsDefined("form.InsertComments")> 
     <cfquery datasource="AccessTest"> 
      INSERT INTO CommentsDB (Remarks, Image_ID, Date_Time) 
      VALUES 
       (
        <cfqueryparam value="#form.Remarks#" cfsqltype="CF_SQL_LONGVARCHAR"> 
        ,<cfqueryparam value="#form.Image_ID#" cfsqltype="cf_sql_integer"> 
        ,<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp"> 
       ) 
     </cfquery> 
     <cflocation url="URL OF PAGE" addToken="false" /> 
</cfif> 
+0

那會是直接在\t之前還是之前呢? –

+1

之後。如果你在它之前執行它,它將不會執行查詢。我會編輯我的答案來向你展示。 – fyroc

+0

這也可以工作 – Geo