2015-03-31 144 views
-1

我在進我所插入的記錄的onsubmit使用jQuery mysql數據庫一個UserDetails表(USER_ID,姓名,年齡,電話,電子郵件,文本) 現在同樣的記錄可以在列表中的HTML頁面使用jquery觀看,當我點擊USER_ID(「1」,這我已經爲A HREF),所以當我點擊1,其中1包含的細節將在我的user_details.html頁像如何使用jquery將記錄更新到mysql數據庫?

http://localhost:8082/JqueryForm/html/user_details.html?user_id=1

查看

名稱:abc ----------> textarea在我的html頁面

電話:1000000

電子郵件:[email protected]

年齡:20

文本:ABCDEFGHIJ

現在,當我user_details.html僅與特定用戶的詳細信息打開,我可以編輯值,因爲它是一個textarea和我的數據庫爲同一USER_ID更新值,以更新按鈕的幫助

我寫了一個更新查詢

public void update_UserDetails(int user_id ,String user_name, String age, 
     String mobile_no, String email_id, 
     String ck_text) { 
    try { 
     prep = (PreparedStatement) connection 
       .prepareStatement("update user_details set 
     user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where 
     user_id=?"); 
     prep.setInt(1, user_id); 
     prep.setString(2, user_name); 
     prep.setString(3, age); 
     prep.setString(4, mobile_no); 
     prep.setString(5, email_id); 
     prep.setString(6, ck_text); 
     prep.executeUpdate(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

和調用的方法在我的user_details.jsp頁

<% 
    Sql_Server server = new Sql_Server(); 
    String name = request.getParameter("name"); 
    String age = request.getParameter("age"); 
    String email = request.getParameter("email"); 
    String phone = request.getParameter("phone"); 
    String ck_text = request.getParameter("ck_text"); 
    String user_id = request.getParameter("user_id"); 
    int userid = Integer.parseInt(user_id); 
    server.update_UserDetails(userid,name, age, phone, email,ck_text); 
%> 

現在,當我在我的jQuery調用JSP頁面時,這些值不會得到更新,誰能幫助我理解爲什麼心不是價值得到更新?

$(document).ready(function(){ 
    $("#update").click(function(e) { 
     var name = $("#nametext").val(); 
     var age = $("#agetext").val(); 
     var email = $("#emailtext").val(); 
     var phone = $("#phonetext").val(); 
     var ck_text = $("#textarea").val(); 
     var dataString = '&name=' + name + '&age=' + age + '&email=' + email + '&phone=' + phone + '&ck_text=' + ck_text; 

      $.ajax({ 
       type : "POST", 
       url : 
      "http://localhost:8082/JqueryForm/html/jsp/update_userdetails.jsp", 
       data : dataString, 
       cache : false, 
       success : function(result) { 
         alert("Records Updated Successfully"); 
         } 
      }); 
     return false; 
    }); 
}); 
+0

控制檯說什麼?任何錯誤?該網頁是否可以找到?如果是,它會返回什麼? – 2015-03-31 11:30:20

+0

你有沒有想過這個.. prep.setString(6,user_id); ..? – 2015-03-31 11:34:15

+0

我已經使用prep.setInt(1,user_id) – 2015-03-31 11:45:38

回答

0

你的問題可能與該值的順序做,要設置到user_id說明的名稱和編號,以ck_text:

prep = (PreparedStatement) connection 
     .prepareStatement("update user_details set 
user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where 
user_id=?"); 
prep.setInt(1, user_id); 
prep.setString(2, user_name); 
prep.setString(3, age); 
prep.setString(4, mobile_no); 
prep.setString(5, email_id); 
prep.setString(6, ck_text); 
0

你如下

被assiging錯誤的價值觀 做
prep.setString(1, user_name); 
    prep.setString(2, age); 
    prep.setString(3, mobile_no); 
    prep.setString(4, email_id); 
    prep.setString(5, ck_text); 
    prep.setInt(6, user_id); 
2

我注意到,在你的jQuery中,在你的ajax調用中,var dataString不包含你需要執行更新的user_id。同樣在你的準備陳述中,你的變量的順序不受尊重。

.prepareStatement( 「更新user_details設置USER_NAME = ?, user_age = ?, mobile_no = ?, EMAIL_ID = ?, ck_text =其中 USER_ID =?」);

prep.setInt(1,USER_ID); //應在最後位置

prep.setString(2,USER_NAME);

prep.setString(3,年齡);

prep.setString(4,mobile_no);

prep.setString(5,email_id);

準備。setString(6,ck_text);

prep.executeUpdate();

+0

所以先生,我需要在我的數據字符串右邊有一個user_id var? ,你能告訴我如何添加它,因爲我沒有任何textarea for user_id,我可以通過id調用,user_id附加了我的url http:// localhost:8082/JqueryForm/html/user_details.html? USER_ID = 1 – 2015-04-01 05:43:03

0

@DDA描述了正確的答案。只是補充。

從URL http://localhost:8082/JqueryForm/html/user_details.html?user_id=1 您可以使用下面的代碼得到查詢字符串(見this post更詳細的討論):

$(document).ready(function(){ 

    function getParameterByName(name) { 
     name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
     var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
      results = regex.exec(location.search); 
     return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 

    $("#update").click(function(e) { 
     var name = $("#nametext").val(); 
     var age = $("#agetext").val(); 
     var email = $("#emailtext").val(); 
     var phone = $("#phonetext").val(); 
     var ck_text = $("#textarea").val(); 

     var user_id = getParameterByName('user_id'); 

     var dataString = 'user_id=' + user_id + '&name=' + name + '&age=' + age + '&email=' + email + '&phone=' + phone + '&ck_text=' + ck_text; 

     $.ajax({ 
      type : "POST", 
      url : 
     "http://localhost:8082/JqueryForm/html/jsp/update_userdetails.jsp", 
      data : dataString, 
      cache : false, 
      success : function(result) { 
        alert("Records Updated Successfully"); 
        } 
     }); 
     return false; 
    }); 
}); 

而且更新語句已被更改爲:

public void update_UserDetails(int user_id ,String user_name, String age, 
           String mobile_no, String email_id, 
           String ck_text) { 
    try { 
     prep = (PreparedStatement) connection 
         .prepareStatement("update user_details set user_name=?,user_age=?,mobile_no=?,email_id=?,ck_text=? where user_id=?"); 

     prep.setString(1, user_name); 
     prep.setString(2, age); 
     prep.setString(3, mobile_no); 
     prep.setString(4, email_id); 
     prep.setString(5, ck_text); 
     prep.setInt(6, user_id); 

     prep.executeUpdate(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 
相關問題