【问题标题】:Set session variable with select box via jQuery/ Ajax with Coldfusion通过 jQuery/Ajax 和 Coldfusion 使用选择框设置会话变量
【发布时间】:2013-03-30 06:11:48
【问题描述】:

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

第一个问题:我正在构建一个带有coldfusion-ajax 标签的表单,这是有史以来最严重的错误。 IE 完全讨厌它,我无法绑定任何东西。是的,我的代码是正确的。我得到了很多人和很多论坛的验证。所以我不知道出了什么问题。

所以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>

【问题讨论】:

  • 理论上cookie中的CFID和CFSESSIONID会一起发送,那么你的catch.cfc应该可以设置session.DeptCode。那么什么不起作用?尝试登录 catch.setDept() 看看你是否可以调试它。
  • 它什么也没做。 :( 这是 ajax 的东西不起作用。它不会传递变量。所以我会在选择框中选择一个选项,但它不会更改变量。Firebug 没有拾取任何东西。跨度>
  • 我认为我的 jquery 脚本有问题..我不确定现在是否要弄清楚..firebug 一点帮助也没有。它什么都不做。
  • 更新:我发现问题出在哪里...... .val 不起作用......我每次都不确定......有什么想法......?我很绝望。
  • 更新:我让 jquery 工作。但现在我得到“元素部门在参数中未定义。”有什么想法吗?

标签: ajax forms coldfusion jquery


【解决方案1】:

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

$('#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); }
  });
}); 

只是一个想法。

【讨论】:

  • 谢谢,在你发帖之前我终于想通了!但是非常感谢! (我忘了说它已经回答了.. xD)
猜你喜欢
  • 1970-01-01
  • 2016-03-20
  • 2015-04-07
  • 2013-02-09
  • 2015-10-10
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多