2015-05-03 78 views
3

我的意圖是:首先我想在頁面上顯示一個按鈕,點擊按鈕後,該按鈕將被刪除並顯示一些其他信息。因此我使用了下面的代碼,但它不起作用,按鈕仍然存在,「其他信息」也不顯示。你們能提供一些我在這裏出錯的建議嗎?提前致謝。如何在點擊按鈕後顯示其他信息?

這是顯示信息的代碼:

<cfif displayMessage eq 1> 
     <cfif ifUploaded eq 0> 
      <div id='message_box'> 
      <cffile action="upload" filefield="PRESENTATION_FILENAME" destination="#ExpandPath("./uploads/")#" nameconflict="overwrite"> 
      <cfset myfile = #cffile.clientFile#> 
      <cfset myurl = mid(cgi.HTTP_REFERER,1,46) & 'uploads/' & #myfile#> 
      <div id="btn"><input type="button" name="kalturaBtn" value="upload to kaltura" href="javascript:void();" onclick="popupwindow('https://lampa.human.cornell.edu/csg.kaltura/test.php?kurl=#myurl#&kname=#form.title#&rec=#ddl_choice#','','1200', '700'); return false;"></div> 
      </div> 
     </cfif> 
    </cfif> 

    <cfif ifUploaded eq 1> 
     <div id='message_box'> 
     <div>#messageTitle#</div> 
     <div>#messageBody#</div> 
    </cfif> 

和我有以下代碼來設置「displayMessage」和「ifUploaded」擊中「kalturaBtn」按鈕後,顯示不同的信息。

<cfif kalturaBtn eq "upload to kaltura"> 
    <cfset ifUploaded = "1"> 
    <cfset displayMessage = "0"> 
</cfif> 

的原因,爲什麼我用另一個變量「displayMessage」這裏是:只有我會在本頁面提交表單後,會顯示所有這些信息。

HTML代碼:

 <cfoutput> 
     <cfform name="frmPresentation" id="frmPresentation" action="#CGI.SCRIPT_NAME#" enctype="multipart/form-data"> 

     <!--- Information Table ---> 
     <div id='main_body'> 
      <div id='inside'> 
      <div style='text-align: center; font: bold 18pt Arial, Helvetica, sans-'serif'>CHE Multimedia Management Page</div> 
       <br/> 
       <cfif displayMessage eq 1 AND len(form.PRESENTATION_FILENAME) gt 0> 
        <cfif ifUploaded eq 0> 
        <div id='message_box'> 
         <cffile action="upload" filefield="PRESENTATION_FILENAME" destination="#ExpandPath("./uploads/")#" nameconflict="overwrite"> 
         <cfset myfile = #cffile.clientFile#> 
         <cfset myurl = mid(cgi.HTTP_REFERER,1,46) & 'uploads/' & #myfile#> 
         <div id="btn"><input type="button" name="kalturaBtn" value="upload to kaltura" href="javascript:void();" onclick="popupwindow('https://lampa.human.cornell.edu/csg.kaltura/test.php?kurl=#myurl#&kname=#form.title#&rec=#ddl_choice#','','1200', '700'); return false;"></div> 
         <span onclick='this.parentNode.style.display="none"'></span> 
         </div> 
        </cfif> 
       </cfif> 

        <cfif ifUploaded eq 1> 
         <div id='message_box'> 
         <div>#messageTitle#</div> 
         <div>#messageBody#</div> 
         </div> 
        </cfif> 

        <cfdump var="#kalturaBtn#"> 

    // a lot of other code omitted here 
    <input type='submit' name='submitMedia' value='Submit Changes' class='submit' onclick='return confirmSubmit()'/> 
    </form> 
    </cfoutput> 
+0

將每個值輸出到屏幕以確保您獲得所需的值。爲了清晰起見,我建議使用true/false而不是1/0。 –

+0

@MattBusche我用輸出一些變量,似乎沒有執行>代碼。 –

+0

代碼或多或少看起來不錯。如果設置'ifUploaded'和'displayMessage'的代碼沒有處理,那麼問題是客戶端。一個小小的建議是始終確定變量的範圍。如果這是一個表單變量,那麼使用''。有時,儘管不太可能,但當您使用unscoped變量時,CF使用的變量與您認爲的不同。它也可能導致安全問題。 'kalturaBtn'是否顯示在'cfdump'中,值是多少? –

回答

1

好吧,也許這會幫助你。

您正嘗試使用普通按鈕來提交表單。

<input type="button" name="kalturaBtn" value="upload to kaltura" href="javascript:void();" onclick="popupwindow('https://lampa.human.cornell.edu/csg.kaltura/test.php?kurl=#myurl#&kname=#form.title#&rec=#ddl_choice#','','1200', '700'); return false;">` 

取而代之,您需要使用提交按鈕。另一件對你造成問題的是popupwindow()腳本後,你有return false這是取消表單提交。像這樣改變這些東西,你的表單應該可以工作。另外,輸入元素沒有href屬性。

<input type="submit" name="kalturaBtn" value="upload to kaltura" onclick="popupwindow('https://lampa.human.cornell.edu/csg.kaltura/test.php?kurl=#myurl#&kname=#form.title#&rec=#ddl_choice#','','1200', '700')">` 

您的頁面沒有更改,因爲您的表單沒有提交。

+0

問題解決了!多麼愚蠢的錯誤,非常感謝 –

相關問題