日期:2014-05-17  浏览次数:20452 次

jquery+webservice实现无刷新回复留言
<td><input type=textarea id='textarea1'><input type=button value='回复此留言' onclick='replyData(" + id + "," + $("#textarea1").val() +")'/></td>   //定义一个textarea1

  function replyData(id,textarea1) {      //回复留言函数
             $.ajax({ 
                 type: "POST",
                 cache: false,
                 url: "WebService.asmx/Update", /* 注意后面的名字对应CS的方法名称 */

                 data: { "id": id}, /* 注意参数的格式和名称 */
                 contentType: "application/x-www-form-urlencoded",
                 dataType: "xml",
                 success: function (ret) {

                     //判断 ret 删除成功再决定是否刷新getData();
                     getData();
                 }

             });
         }


   [WebMethod]
    public String Update(int id,string textarea1)     //webservice里的方法
    {
        System.Data.SqlClient.SqlConnection sqlCon = new SqlConnection();
        sqlCon.ConnectionString = "server=.;uid=sa;pwd=sa;database=guestbook";
        //定义SQL语句
        string SqlStr = "update gbook set repcontent=" + textarea1+"where id=" + id;
        //实例化SqlDataAdapter对象
        sqlCon.Open();
        SqlCommand cmd = new SqlCommand(SqlStr, sqlCon);
        int ret = cmd.ExecuteNonQuery();
        sqlCon.Close();
        if (ret > 0) return "删除成功";
        return "删除失败";
    }
    

想买是留言本,这里的代码的意义是,执行以上代码,本来想把textarea1.text里的值写入数据库,按F5调试,可以通过,但点击web页面上的【回复留言】按钮,却什么操作都没执行,事后查了下数据库,一样没写进任何数据。
------解决方案--------------------
首先看你的Update 方法有2个参数 如果使用jQuery aja提交的话 那么肯定是要保证参数是一样的 少了参数是会出错的。你先把参数弄好在试试。