我想用jquery ajax绑定下拉列表 绑定成功了 就是只绑定了一条数据,我知道是没有用each()循环,但是不会用,该怎么改??
js代码
 <script type="text/javascript">
     $(function(){
         $.ajax({
          type:"POST",
          url:"DataBase.aspx?Event=ddlBind",
          data:null,
          beforeSend:function()
          {
            $(document.body).append("<div id='testId' style='color:red'>Loading...</div>")
          },
          error:function(){
          alert("error");
          },
          success:function(mes)
          {
            var jsonResult=eval("("+mes+")");//轉換
            var msg=jsonResult.msg;
            var dlVal=jsonResult.dlValue;
            
            var apHtml;
            apHtml+="<div id='dlSelect'>"
            if(msg=="ok")
            {
             var apHtml="<select id='select1'><option value='"+dlVal+"'>"+dlVal+"</option></select>"
             $(document.body).append(apHtml);
             $("#testId").hide();//隱藏Loading...
            }//if end
            apHtml+="</div>";
           }//success end
       })//ajax end
   })
    </script>后台处理代码
 if (Request.QueryString["Event"] == "ddlBind")
        {
            string sql = "select sub_plate_name from mdsets_bbs_sub_plate";
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
            ds = OracleHelper.GetDS(sql);
            string dl = ds.Tables[0].Rows[0].ItemArray[0].ToString();
            Response.Write("{msg:'ok',dlValue:'" + dl + "'}");//返回json格式
            Response.End();
        }

解决方案 »

  1.   

    $(msg).each(function() {
    ......................
    }
      

  2.   

    是這樣嗎 不行吖??   <script type="text/javascript">
         $(function(){
             $.ajax({
              type:"post",
              url:"DataBase.aspx?Event=ddlBind",
              data:null,
              beforeSend:function()
              {
                $(document.body).append("<div id='testId' style='color:red'><img src='images/load_01.gif' title='Loading...' alt='Loading...'></div>")
              },
              error:function(){
              alert("error");
              },
              success:function(mes)
              {
                var apHtml;
                apHtml+="<div id='dlSelect'>"
              $(mes).each(function(){
                var jsonResult=eval("("+mes+")");//轉換
                var msg=jsonResult.msg;
                var dlVal=jsonResult.dlValue;
                if(msg=="ok")
                {
                 var apHtml="<select id='select1'><option value='"+dlVal+"'>"+dlVal+"</option></select>"
                 $(document.body).append(apHtml);
                 $("#testId").hide();//隱藏Loading...
                }//if end
                 });
                apHtml+="</div>";
               }//success end
           })//ajax end
       })//function ready end
        </script>
      

  3.   


    var st = JsonToObject(msg);
    for (var i = 0; i < st.Rows.length; i++) {
    $("#ddlTableConfigTitile").append("<option value='" + st.Rows[i].Value+ "'>" + st.Rows[i].Text+ "</option>");
    }
    你看看吧
      

  4.   

    var st = JsonToObject(msg);
    ?這是什嗎
      

  5.   

    function showData() {
      var data = eval('[{"title":"测试标题","name":"a"},{"title":"测试标题","name":"b"}];');
    var o = eval(data);//将json字符串转换成js对象
    for (var i in o) {//循环json对象数组
      for (var key in o[i]) {
      alert("field:" + key + ", value:" + o[i][key]);
      }
    }}
      

  6.   


    <!--写了个例子-->
    <script type="text/javascript">
            $(document).ready(function(){
                var select = "<select id=\"Select1\">"
                $.ajax({
                    url:"Handler.ashx",
                    type:"post",
                    data:null,
                    dataType:"json",
                    success:function(result){
                        if(result.Index!=-1){
                            $.each(result,function(i){
                                select+="<option value='"+result[i].Index+"'>"+result[i].Name+"</option>";
                            })
                        }
                        select+="</select>";
                        $("body").append(select);
                    }
                })
            })
        </script>        context.Response.ContentType = "text/plain";
            DataTable dt = getDataTbl();
            System.Text.StringBuilder sb = new System.Text.StringBuilder("[");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                sb.Append("{'Index':'" + dt.Rows[i][0] + "','Name':'" + dt.Rows[i][1] + "'},");
            }
            string result = sb.ToString().Substring(0, sb.ToString().Length - 1);
            if (sb.Length < 3)
            {
                context.Response.Write("{\"Index\":\"-1\"}");
                context.Response.End();
            }
            else
            {
                context.Response.Write(result+"]");
                context.Response.End();            
            }
      

  7.   

    刚在看电影。
    看了下你的代码
    1:如果指定了dataType:"json"的话就不用在eval了
    2:jq循环的话可以用
    $.each(mes,function(i){})
    3:如果后台返回多条语句的话json格式
    var json=[{"ID":1,"Name":"zhangsan"},{"ID":2,"Name":"lisi"}];
                for(var i=0;i<json.length;i++)
                {
                    alert(json[i].ID+"---"+json[i].Name);
                }
    用大扩号扩起来。然后循环遍历它
    上面的for循环就相当于$.each(mes,function(i)),其中的i是索引
      

  8.   

    剩下的东西你自己看着改下
    刚写的例子家里没装sql,就直接动态创建了个datatable,原理一样
    public DataTable getDataTbl()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", Type.GetType("System.Int32"));
            dt.Columns.Add("Name", Type.GetType("System.String"));
            string[] name = { "zhangsan", "lisi", "wangwu" };
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            return dt;
        }
      

  9.   

      beforeSend:function()
              {
                $(document.body).append("<div id='testId' style='color:red'>Loading...</div>")
              },我想让这个加载条 时间延长点 怎么弄?
      

  10.   

    可以在ashx页面中弄个Thread.Sleep(2000);