function sub() {
            var n = document.getElementById("name").value;
            var s = document.getElementById("sex").value;
            var c = document.getElementById("card").value;            var a = ' <%=insert() %>';
            alert(a);
        }insert方法有三个参数,我要把n,s,c的数据传过去

解决方案 »

  1.   

    通过AJAX才行。http://www.w3school.com.cn/ajax/
      

  2.   

    js 调用服务器 用 ajax 
      

  3.   

    楼主,这样就可以调后台?要知道页面代码解释的优先级,<%%>内先、js次之、html再次之
      

  4.   

    这不是js调用后台,而是<%= %>这里面的代码会作为后台代码运行,然后用得到的结果替代该代码然后把html页面发送到前台,也就是说该后台函数只会在页面加载前执行一次建议楼主了解下web程序页面过程就会知道你这种方式是不能实现的,因为前台js代码与后台代码根本不是运行在同一台电脑(这儿用心理解了,以后你不会再有类似疑惑)还是写Ajax请求吧,不进行通信是不可能实现跨电脑调用函数的你现用的方法,正确写法是:
    var a = ' <%=insert(\"'+n+'\",\"'+s+'\",\"'+c+'\") %>';
    不用试我都知道这儿应该会报错,错误应该是n,s,c未定义?而不用变量,用常量字符串的话却不会报错(结合我上面说的,如果你自己能想明白为什么的话你就理解了)
    不过我可以保证这个无法达到动态调用后台函数的目的,初学者总是不能理解页面过程,也就不能明白为什么前台函数和后台函数间不能互相调用,我当初也曾这么搞笑...想找一个能在前台直接调用后台函数的方法...另,前面那儿错误原因是:
    既然是作为后台代码在页面加载前运行,那时页面根本还没有加载,哪里有这些变量?所以一旦用变量作参数就错,而常量却不会错