Prototye1.5中Ajax.Updater()中自定义函数中取的数据一直不能取到新数据?
各位高手,
  这两天一直在搞Prototye1.5中Ajax.Updater()函数,总是有问题,自定义函数老是不能从服务器中取到新数据,请帮一下,下面是我的示例代码。当我点击2007或2008或2009链接时,返回页面中 button 的 value是一直在变化的,是可以取到这个返回值
,但我点这个button时,执行的函数中一直取不到这个返回值,总是显示第一次的取到的数值。例如我第一次显示这个页面时,alert出来是个"2007", 当我点击         
  <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2008'});"  >2008年</a>
这个按钮时,这个按钮的value值为变成 2008 ,但点击后,alert出来的信息还是2007,不是2008,搞了两天了,一直没能知道为什么,请帮一下。非常感谢!a.jsp返回服务器中取到的nf这个字段值,应该不会有问题。
<div id="condiv"><c:out value="${ob.curYear}"/>
  <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2007'});"  >2007年</a>

  <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2008'});"  >2008年</a>

  <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2009'});"  >2009年</a>    <SCRIPT LANGUAGE="JavaScript">
var selectChartMenu=function(id,url,params){
var loc=[];
if (params){
for(var key in params){
loc.push("&"+key+"="+params[key]);
}
}
loc.push("&ajax="+Math.random());
new Ajax.Updater(id, url, {
parameters:encodeURI(loc.join("")),
evalScripts: true,
method: 'get',
onFailure: function(){alert("出现异常")}
})
}  var te=function(){
 var curYear='<c:out value="${ob.curYear}"/>';
 alert(curYear);
 }
    </SCRIPT>
 <input type="button" value="<c:out value="${ob.curYear}"/>" onclick="te();">
 </div>

解决方案 »

  1.   


    <div id="condiv"><c:out value="${ob.curYear}"/>
          <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2007'});"  >2007年</a>
        
          <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2008'});"  >2008年</a>
        
          <a href="javascript:selectChartMenu('condiv','a.jsp',{nf:'2009'});"  >2009年</a>    <SCRIPT LANGUAGE="JavaScript">
            var selectChartMenu=function(id,url,params){
                var loc=[];
                if (params){
                    for(var key in params){
                        loc.push("&"+key+"="+params[key]);
                    }
                }
                loc.push("&ajax="+Math.random());
                new Ajax.Updater(id, url, {
                    parameters:encodeURI(loc.join("")),
                    evalScripts: true,
                    method: 'get',
                    onFailure: function(){alert("出现异常")}
                })
            }         var te=function(){
                     var curYear=document.getElementById('xxx').value;
                     alert(curYear);
             }
        </SCRIPT>
     <input id="xxx" type="button" value="<c:out value="${ob.curYear}"/>" onclick="te();">
     </div>
      

  2.   

    >>又是一个大缓存
    这个应该不是缓存的问题吧,那我页面中数据是取到的,只是在js函数中没法取到。谢谢!