2011-07-19 9 views
0

私の人生の間、私のCFC機能が実行されていない理由を理解できません... firefugは実行していますが、何も起こりません。CFCに正しく送信されないJQueryデータ

<cffunction name="deleteRequest" access="remote" returntype="void"> 
    <cfargument name="id" type="numeric" required="yes"> 

    <cfquery name = "deleteRequests" datasource = "#application.dsn#"> 
    DELETE FROM requests 
    WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#"> 
    </cfquery> 

    <cfreturn> 
</cffunction> 

jqueryの/ javascriptの:

 $("input[name=delete]").click(function(){ 
     var z = deleteRequest($(this).attr("id")); 
     var y = $(this).attr("id"); 
     if(z){ 
     $.ajax({ 
     type: 'POST', 
     url: '/cfc/request.cfc', 
     data: {id: y, method: "deleteRequest"} 
     }); 
     } 
    }); 

     function deleteRequest(id){ 
     var x = confirm("Are you SURE you want to DELETE this?"); 
     if(x){return 1;} 
     return 0; 
     } 

jqueryのは、働いている...そして、それを送信し、おそらくそこになっている...しかし、何も起こりません。私はCFCをテストし、それを手動で起動した。私はそれが私の変数と関係していると推測しています。私はおそらくidがparseInt()が必要だと思ったが、どちらも役に立たなかった。

DBからエントリを削除するだけです。私は間違って何をしていますか?

*申し訳ありませんが簡単な質問です。私はJQUERY + CFCに多くの問題を抱えています...私は良いチュートリアルを探しています...しかし、私は良い初心者のものを見つけることはできません。

UPDATE:変更したURLにメソッドparamを入れようとしましたが、publicへのアクセスを変更しました...同じ結果です。

+0

Firebug(または類似のもの)を使用して、CFCに送信されるPOSTデータを検査していますか?あるいは、CFCのフォームスコープでcfdump/cfabortを試して、jQueryから何が流れているのかを確認しましたか? – Jason

+0

私は火薬爆弾を行った...それは正しいデータID = 299とメソッドparamを掲示しているという。私はcfcに何かをダンプするのに成功するにはまだ成功していません。 (それはほとんどそれを無視しているようです。)?method = deleteRequestとpublicに変更した後も同じ結果になります。私はそれを呼び出すと動作しますが、jquery呼び出しではありません。サーバー設定のようなものだと思いますか? – Bri

答えて

1

てみてください:

<cffunction name="deleteRequest" access="public" returntype="void"> 

    <cfquery name = "deleteRequests" datasource = "#application.dsn#"> 
    DELETE FROM requests 
    WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#"> 
    </cfquery> 

<cfreturn> 
</cffunction> 

$("input[name=delete]").click(function(){ 
    var z = deleteRequest($(this).attr("id")); 
    var y = $(this).attr("id"); 
    if(z){ 
    $.ajax({ 
    type: 'POST', 
    url: '/cfc/request.cfc?method=deleteRequest', 
    data: {id: y} 
    }); 
    } 
}); 

    function deleteRequest(id){ 
    var x = confirm("Are you SURE you want to DELETE this?"); 
    if(x){return 1;} 
    return 0; 
    } 
+0

これもやりましたか?立ち入り禁止。 :( – Bri

+0

私はあなたが "リモート"の代わりに "公共"であなたの機能をマークする必要があると思う... plsはこれを試してください..より多くの情報=> http://blog.nitorsys.com/ajax-call-to-coldfusion-コンポーネントを使用したjquery/ – dknaack

+0

publicに設定してもうまくいきませんでした。:(また、リモートに設定する必要があるAjaxの情報も考えました(これらのソリューションの両方を組み合わせて試してみました。) – Bri

0

我々は少し問題と私たちのアプリケーションではかなり重くコールのこのスタイルを使用します。コードを見ると、URLにメソッド名を指定し、引数として指定したデータを使用して、dknaackのスタイルを使用する傾向があります。 Fiddler(fiddler2.com)を使用してコールをインターセプトして、コードを確実に呼び出していることを確認しましたか。 それ以外の場合は、渡す内容を記録するためにメソッド内で<CFLOG>を使用します。使用するように設定されている場合はデバッガを使用します。

+0

悲しいことに、私はログディレクトリにアクセスできないと思います...私はサーバーを維持しません。 :|私はフィドラーを調べます。 – Bri

+0

フィドラーとファイヤーバグの違いは何ですか? – Bri

+0

FiddlerとFireBugの違いは、Fiddlerは別のDebuggingプロキシであるということです。つまり、IE、Chrome、FFで同時に実行できます。プロキシをサポートするプログラムはすべて( ''を含む)それを介して使用することができ、要求と応答を検査するための非常に強力な機能を持っています。それは私のベーコンを毎日保存する:) – barnyr

関連する問題