2011-12-13 16 views
2

私は「選択」パラメータColdfusionはページを更新せずにストアドプロシージャを実行しますか?

<cfstoredproc procedure="MyProcedure" datasource="MyDataSource"> 
    <cfprocparam type="in" cfsqltype="cf_sql_integer" value="#selection#" null="no"> 
</cfstoredproc> 

してストアドプロシージャを持っている私は、ユーザーがボックスを選択することができます選択ボックスを持っている、と私は、ストアドプロシージャを「コール」するためにjqueryのを使用したいと思います:

$(document).ready(function(){ 
     $('#selectbox').change(function() { 
      // update my #selection# variable 
         // run the stored procedure again (the one above) 
     }); 
    }); 

これを行う方法はありますか?私は...それは、クライアントとサーバー側のコードを混合だが、ページ上の複数のフォームがあるので、私はページを更新することはできません知っている

答えて

6
$(document).ready(function(){ 
     $('#selectbox').change(function() { 
      $.get('pathToYourStoredProcCFM.cfm?selectVal=' + $(this).val(), function (res) { 

       // if you need to handle the response to the stored proc 
       // on the client side (which was output in your CFM code), do so here 
       // (the response from CF is stored in the "res" variable) 

      }); 

     }); 
    }); 
+0

うーん...私は同じページ上のコンテンツを変更していていた場合、私はちょうどあなたが作る必要があるでしょう – redconservatory

+2

(「?selectVal =」)$のに.getような何かを行うことができますいずれにしてもサーバーへの旅行。理論的には、最初にロードしたのと同じページにコールバックできますが、それは私にとっては悪い考えです。デモしたように、格納されているproc呼び出しを別のファイルに分離するだけです。 –

+0

実際に多くのことを明確にしてくれてありがとう。 – redconservatory

0

あなたがのために別々のCFMファイルにあなたのストアドプロシージャの呼び出しを配置する必要がありますあなたのjqueryを呼び出してください。あなたのページで呼び出されたものを参照することはできません。

2

ストアドプロシージャを含む.cfmページを作成し、AJAX呼び出しを使用してストアドプロシージャを実行する必要があります。

storedProc.cfm

<cfparam name="URL.selection" /> 

<cfstoredproc procedure="MyProcedure" datasource="MyDataSource"> 
    <cfprocparam type="in" cfsqltype="cf_sql_integer" value="#URL.selection#" null="no" /> 
</cfstoredproc> 

$(document).ready(function(){ 
     $('#selectbox').change(function() { 
      // update my #selection# variable 
      $.get("storedProc.cfm", { selection: $(this).val() });   
     }); 
    }); 
関連する問題