使用带有Coldfusion的jQuery / Ajax通过选择框设置会话变量

时间:2010-07-08 18:49:39

标签: ajax forms coldfusion jquery

好的,这就是我史诗般的旅程问题,现在持续了一个月......:

第一个问题:我正在使用coldfusion-ajax标签构建一个表单,这是有史以来最严重的错误。 IE完全讨厌它,我无法绑定任何东西。是的,我的代码是正确的。我有很多人和很多论坛验证过它。所以我没有IDEA的错误。

所以coldfusion ajax标签是不可能的..它们不能用于我的服务器设置......我不知道。 (我不控制我工作的服务器)

所以...现在,我是SOL,在我的办公室里像个疯狂的人一样哭...我现在决定通过使用jQuery + Coldfusion来解决这个问题。

它不起作用......

以下是新问题: 我需要一个预先填充设置会话变量的选择框。换句话说:

我想将一个表单变量传递给一个页面,该页面将会话变量设置为等于该表单变量...

注意:我正在使用CF 8。

到目前为止,这是我的代码:

形式:

<form>
    <select name="DeptCode" id = "dept">
    <option value="NONE" selected>Choose a Department
    <cfoutput query="getDepartments">
    <option value="#DeptCode#">#DeptName#</option>
    </cfoutput>
    </select>
    </form>
    <cfoutput> #session.DeptCode#</cfoutput>

的jQuery / AJAX:

<script language = "javascript">
$('#dept').change(
        function() {

            var datas = $('#dept').val();
            $.ajax({
            url: 'url:catch.cfc?method=getDept',
            data: {dept: datas}
            success: function(datas) { alert(datas); }
             });
}); 
</script>

catch.cfc

<cfcomponent output="false">
    <cffunction name="setDept" access="remote" returntype="any">
        <cfargument name="dept" type="any" required="yes">
        <cfset session.DeptCode = #argument.dept#>
        <cfreturn />
    </cffunction>
</cfcomponent>

1 个答案:

答案 0 :(得分:3)

我不确定你是否在发布代码后更新了内容,或者在转录过程中可能存在拼写错误 - 但是存在一些语法问题:

$('#dept').change( function() {
  var datas = $('#dept').val(); // always yields a result in real code?
  $.ajax({
    url: 'catch.cfc?method=getDept', // You repeated "url:" in your url
    data: {dept: datas}, // added missing final comma
    success: function(datas) { alert(datas); }
  });
}); 

只是一个想法。