0

我有一个 JS 函数,它根据用户从下拉列表中选择的内容创建一个变量。我需要在我的 CF 代码上使用该 JS 变量,以便能够在提交表单以外的操作中使用它。

这是我的 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。+网址2;

这是你的意思吗?

仅供参考-形式上您应该进行 POST 以更新数据库中的数据-尤其是“删除”。它更加安全(并且符合 W3C)。

于 2012-05-22T15:59:07.930 回答
0

毕竟我唯一需要做的就是将这一行代码添加到我的 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 回答