本帖最后由 yupeng103 于 2011-05-04 17:51:59 编辑

解决方案 »

  1.   

    onclick='doQuery("+jsonData+",1)'>";把jsonData作为字符粗了,不是对象
    试试这个
    onclick='doQuery(jsonData,1)'>"
      

  2.   

    这样看看html+="<span class='pgBtn first' title='首页' id='first' onclick='doQuery(\""+jsonData+"\",1)'>";
      

  3.   

    我也遇到过这问题,好像是不可以的吧,json对象会调用toString().
    如果是简单json对象可以转换成json对象字符串,再在函数里转成json对象.不过我没有试过.
      

  4.   

    我想,jsonData这个json对象是在
    这句代码
    html+="<span class='pgBtn first' title='首页' id='first' onclick='doQuery("+jsonData+",1)'>";
    所在的函数下定义的。
    这样一来,你在这样执行里,jsonData会转换成字串"[object Object]",肯定不行。
    你只需要在定义jsonData时,将其定义成字串,不要定义成json对象就行了。
    如:
    原定义:
        var json={name:'td'};
    改成:
        var json="{name:'td'}";
      

  5.   

    改正下上面的一个错字,顺便也改正变量名我想,jsonData这个json对象是在
    这句代码
    html+="<span class='pgBtn first' title='首页' id='first' onclick='doQuery("+jsonData+",1)'>";
    所在的函数下定义的。
    这样一来,你在这样执行时,jsonData会转换成字串"[object Object]",肯定不行。
    你只需要在定义jsonData时,将其定义成字串,不要定义成json对象就行了。
    如:
    原定义:
      var jsonData={name:'td'};
    改成:
      var jsonData="{name:'td'}";
      

  6.   

    你能把jsonData的值给贴出来么?根本就不晓得你的那个方法现在返回的是什么东西啊!
      

  7.   

    你现在 jsonData的值是一个类似对象集合的数据还是就是一个字符串啊????   而且doQuery这个方法里面锁需要的参数是什么类型的啊?   都说清楚,  直接放这里  大家给你出注意,  但是都不知道你方法到底需要的是什么类型的参数啊
      

  8.   


                /**
                 *取得发送data
                 */
                function getSendData(){
                    var jsonData ="";
                    var position = document.getElementById("position").value;
                    var start = document.getElementById("start").value;
                    var end = document.getElementById("end").value;
                    var name = document.getElementById("name").value;
                    var certificateType = document.getElementById("certificateType").value;
                    var certificateID = document.getElementById("certificateID").value;
                    var nation = document.getElementById("nation").value;
                    var sex = document.getElementById("sex").value;
                    var startAge = document.getElementById("startAge").value;
                    var endAge = document.getElementById("endAge").value;
                    var address = document.getElementById("address").value;
                    var company = document.getElementById("company").value;
                    var visitorName = $("#visitorName").val();
                    jsonData = {"position":position,"direction":1,"start":start,"end":end,"name":name,
                        "certificateType":certificateType,"certificateID":certificateID,"nation":nation,
                        "sex":sex,"startAge":startAge,"endAge":endAge,"address":address,"company":company,
                        "visitorName":visitorName,"queryType":visitorQuery};
                    return jsonData;
                }/**
    *查询方法
    **/
     function doQuery (sendJsonData,pageno) {
                    
                    $.ajax({
                        type: "post",
                        url: "<%=basePath%>/CCS/BS/QueryServlet",
                        data: sendJsonData,
                        dataType: "text",
                        beforeSend: function(XMLHttpRequest){
                        },
                        success: function(data, textStatus){
                            var innerHtml = "";
                            if(data){
                                var returnJsonData = JSON.parse(data);
                                var rtnList = returnJsonData.list;
                                var amount = returnJsonData.amount;
                                var pageno = returnJsonData.pageno;
                                var last = returnJsonData.last;
                                var previous = returnJsonData.previous;
                                var next = returnJsonData.next;
                                var pageRow = "";
                                pageRow = " <tr style='background-color:#ffffff'><td colspan='100' style='text-align:center;background-color:#ffffff'>当前第"
                                    +pageno+"页,共"+last+"页,"+amount+
                                    "条数据  <span class='pgBtn first' title='首页' id='first' onclick='doQuery("+sendJsonData+",1)'>&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp"+
                                    "<span class='pgBtn pre' title='前一页' id='pre' onclick='doQuery("+sendJsonData+","+previous+")'>&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;"+
                                    "<span class='pgBtn next' title='下一页' id='next' onclick='doQuery("+sendJsonData+","+next+")'>&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;"+
                                    "<span class='pgBtn last' title='尾页' id='last' onclick='doQuery("+sendJsonData+","+last+")'>&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;"+
                                    "</td></tr>";
                                
                            }
    //省略代码
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown){
                            //
                        },
                        complete: function(XMLHttpRequest, textStatus){
                            //
                        }
                    });
                }
      

  9.   

    我试了一下,可以是可以,但是问题是
    第一次调用doQuery方法为点击一个查询按钮,传进去的jsonData可以是拼接的字符串,在doQuery中转换成json数据就可以了,但是在分页中调用时,传的值就改成json数据了,而不是字符串了,需要程序中判断,如果是字符串就需要转换成json,如果是json数据就不用转换了,挺麻烦的,感觉程序不够通用
      

  10.   

    用火狐的firebug调试一下,感觉是js代码就没执行,可能在这个之前的js有错误
      

  11.   

    - - JSON 是对象么 - - 你说要怎么传
      

  12.   

     var jsonData ="",你这一句把jsonData定义为一个字符串了,当然不是json对象了。直接写。
    var jsonData = {"position":position,"direction":1,"start":start,"end":end,"name":name,
                        "certificateType":certificateType,"certificateID":certificateID,"nation":nation,
                        "sex":sex,"startAge":startAge,"endAge":endAge,"address":address,"company":company,
                        "visitorName":visitorName,"queryType":visitorQuery};
      

  13.   

    我也遇到过json传递无效的问题,还是建议调试下js