0

ユーザーがドロップダウンリストから選択したものに基づいて変数を作成するJS関数があります。フォームの送信以外の操作で使用できるようにするには、その JS 変数を CF コードで使用する必要があります。

これは私のJS関数です

function handleProcedureChange(procedureid,recID)
    {
        procedureid= document.form1.procedure.value;
        recID = document.form1.recID.value;
        state = document.form1.state.value;
        state = state.trim();
        city = document.form1.city.value;
        city = city.trim();

        var url ="../../../../cf_modules/components/customDescriptions.cfc?method=procedureDescription&"; 
        url=url+"ProcedureID="+procedureid+"&recID=" + recID + "&state=" + state + "&city="+city;

        $.get(url, function(procedureResult) {
             procedureResult = procedureResult.replace(/^"+|"+$/g, "");
            $("#procedureDescription").text(procedureResult);
        });


    }

これが私のフォームです

      <select name="procedure" onChange="handleProcedureChange();">
            <option value="">Select Procedure</option>
            <cfloop query="procedures">
                <option value="#procedureId#">#procedureName#</option> 
            </cfloop>
        </select>   

 <textarea name="procedureDescription" id="procedureDescription" cols="80" rows="6"></textarea><br />

このリンクで、いくつかのサーバー側機能を制御するurl2変数を使用する必要があります

これらはリンクシーケンスです

<cfoutput>[<a href="cityEdit.cfm?recID=#recID#&delete1=#recID#&state=#state#&city=#city.getCity()#&procedureid=#procedure#">delete</a>]</cfoutput>

<cfif delete1 neq "">
    Are you sure?
<cfoutput> [ <a href="cityEdit.cfm?recID=#recID#&delete1=#delete1#&delete2=#delete1#&procedureid=#procedure#&state=#state#&city=#city.getCity()#">Yes</a>&nbsp;|&nbsp;<a href="cityEdit.cfm?recID=#recID#">No</a>]</cfoutput>
</cfif>

これらは、上記のリンクが制御する機能です。

<cfparam name="delete1" default="">
<cfparam name="delete2" default="">


<cfif delete1 neq "">
            <cfquery name="procFinder" datasource="#ds#">
                select * from psp_customDescriptions where recID = '#delete1#'
                and procedureID = '#procedure#' and city = '#city#' and state='#state#'
            </cfquery>


        </cfif>

        <cfif delete2 neq "">
            <cfquery name="deletepractice" datasource="#ds#">
                delete from psp_customDescriptions where recID = '#delete2#'
                 and procedureID = '#procedure#' and city = '#city#' and state='#state#'
            </cfquery>

            <cflocation url="cityEdit.cfm?recID=#recID#" addtoken="no">
        </cfif> 
4

3 に答える 3

4

リンクがクリックされたときに実行されるようにロジックを移動するのはどうですか? jQuery などを使用して値を取得し、イベント ハンドラーを設定することも検討できます。前述のように、投稿を使用してデータを変更/削除することを検討する必要があります。

<script>
function handleDeleteLink()
{
    procedureid= document.form1.procedure.value;
    recID = document.form1.recID.value;
    state = document.form1.state.value;
    state = state.trim();
    city = document.form1.city.value;
    city = city.trim();

var url2 ="ProcedureID="+procedureid+"&recID=" + recID + "&state=" + state + "&city="+city;

    document.deleteLink.href="cityEdit.cfm?"+url2;
    }
</script>    

<a id="deleteLink" href="#" onclick="">Delete</a>
于 2012-05-22T16:02:45.707 に答える
1

あなたの質問についてよくわかりません。表面的には明らかです。誰かが上のリンクをクリックすると、次のように表示されます。

cityEdit.cfm?recid=123&delete1=123&procedureid=345....

変数は「URL」スコープで ColdFusion に渡されます。したがって、次のようになります。

<Cfoutput>
#url.recid#
#url.delete1#
#url.procedureID#
</cfoutput>

それはあなたの質問に答えていますか?


質問が JS 側に関するものである場合は、リンクの結果として関数が必要です。リンクとして「cityedit.cfm」の代わりに、リスナーまたはクリック ハンドラーを追加して、ユーザーが削除をクリックすると、JS 関数が起動されるようにします。次に、JS 関数内で URL を作成し、「cityEdit.cfm?」に対して document.href.location を実行します。+ URL2;

ということですか?

参考までに、DBのデータを更新するためにPOSTを実行する必要があります-特に「削除」。もう少しフェイルセーフです (そして W3C に準拠しています)。

于 2012-05-22T15:59:07.930 に答える
0

結局、必要だったのは、この 1 行のコードを JS 関数に追加することだけでした。

$("#deleteProc1").html('<a href="cityEdit.cfm?recID='+recID+'&delete1='+recID+'&delete2='+recID+'&state='+state+'&city='+city+'&procedureid='+procedureid+"\">Delete</a>");

このリンクは、CF 機能にアクセスし、ドロップダウン リストから選択した手順を削除するのに役立ちます。

私の質問にコメントしてくれたすべての人に感謝します

于 2012-05-22T19:34:06.353 に答える