1. 如何用jquery實現用ajax讀取數據,修改後再返回
我想你理解錯了,ajax一半是非同步發送連接到後台,
通過動態語言連接資料庫讀取好數據,以表格的方式組合數據返回到ajax的回調函數里頭,直接添加到頁面的dom上的
$.get("test.asp", data:{id:01}, function(data){data.appendTo(".div");//將返回的結果添加到頁面上})
asp:
<%
id=request("id")
sql="select * from tb where ...
......
response.write("<table>")'這里進行取數據和表格重組,並返回到datd里頭
%>
2. ajax獲取資料庫數據 求助一2級下拉框的級
1、首先在資料庫中獲取第一個下拉框的數據:
<s:select listKey="tsFrom" id="t_tsfrom" cssClass="required"
listValue="tsFrom" cssStyle="width:90" list="tsfrom1"
name="tsFrom" theme="simple" headerKey=""
onchange="getTsFromDescribe(this);" headerValue="--請選擇--" />
後台處理:
@Autowired
private CustomMaManager custommamanager;//註解相當的好用啊,代碼都省了一大截
tsfrom1 = custommamanager.getTsFrom();
Service:
//得到投訴來源
public List<CustomManage> getTsFrom(){
return custommanage.getTsFrom();
}
:
/**得到產品類型**/
public List<CustomManage> getTsFrom(){
return this.find("SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC");
}
注意:Oracle在java代碼里取出重復值與SqlServer不一樣,它得使用:
復制代碼代碼如下:
SELECT distinct new CustomManage(tsFrom,'2') FROM CustomManage C WHERE C.tsFrom IS NOT NULL ORDER BY tsFrom ASC
先new實體bean(CustomManage) 然後在實體bean中給相應欄位設置構造方法,不然將會出現後台已經返回了值,但是在前台下拉框中不顯示,下拉框空白的現象。
public CustomManage(String khname,int s){
this.khname=khname;
}
public CustomManage(String cpname,String type){
if("1".equals(type)){
this.cpname=cpname;
}else if("2".equals(type)){
this.tsFrom=cpname;
}else if("3".equals(type)){
this.khname=cpname;
}
}
這里需要在bean的實體類裡面加入相應的構造方法,以此來供去重使用。
至此第一級的數據准備已經差不多了。使用S標簽的list集合來獲取後台傳遞過來的值。
2、第二級下拉菜單的級聯====利用Ajax來獲取數據
在第一級列表的onchange事件中編寫:
//投訴信息來源信息級聯
function getTsFromDescribe(ts_describe){
var tsfrom = $("#t_tsfrom").val();
var tstsFrom = $("#ts_tsFrom").val();
Ext.Ajax.request( {
url : '${ctx}/complaints/complaints!getTsFrom.action',
params : {
tsfrom : tsfrom//通過json形式將前台每次獲取到的值傳遞給後台
},
success : function(response) {
var json = Ext.util.JSON.decode(response.responseText);
if (json.success) {
var data = json.<strong>cmList</strong>;
if ("" == data) {
alert("請選擇投訴類型");
inputForm.t_tsfrom.focus();
$("#ts_tsFrom").empty();//每次需要將上一次的數據進行清空
} else {
$("#ts_tsFrom").empty();
//對獲取到的數據進行迭代
for ( var i = 0; i < data.length; i++) {
var id = data[i];
var name = data[i];
$("#ts_tsFrom").append(
"<option value='" + id + "'>" + name + "</option>");
}
dwr.util.removeAllOptions('tstsFrom');
dwr.util.addOptions('tstsFrom', data);
}
}
}
});
}
後台返回數據:
public void getTsFrom() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
String ts_names = tsfrom;
List<CustomManage> list = complaintsmanager.getTsDescribe(ts_names);
response.setContentType("text/javascript"); // 後台控制的代碼
PrintWriter writer = response.getWriter();
// 將得到的list集合轉為JSON對象傳給前台處理
JSONArray j = JSONArray.fromObject(list);
writer.println("{'success':true,'<strong>cmList</strong>':" + j.toString() + "}");
}
到此一個從資料庫里動態獲取值,並且實現二級菜單級聯的功能就做的差不多了。發表出來希望對你對我都有好處哈。
這里加註一點就是在修改的時候下拉框的值不會保存,就是上一次點擊提交的時候保存在資料庫里的值無法填充到下拉框。
處理辦法:
var op1 = document.getElementById("op1").value;
if(op1!=null){
$("#cp_validity").val(op1); //將取出來的值塞到下拉框中。一個蘿卜一個坑
}
<input type="hidden" id="op1" value="${compDisposal.validity}">//使用表達式將存在資料庫里的值取出來,放在隱藏域裡面
3. 用Ajax怎麼樣取出資料庫的內容進行對比
要使用Ajax取出資料庫內容進行對比,首先需確保對Ajax配置有所了解。實現此功能需涉及多個關鍵步驟,包括編寫Java類與方法,以及調用數據訪問層(DAO層)代碼進行判斷。以下將詳細描述此流程。
1. **編寫Java類與方法**:創建一個Java類,其中包含一個用於接收用戶對象或用戶名(字元串類型)的方法。例如,可以創建一個名為`UserService`的類,其內有一個名為`findUser`的方法,接受用戶對象或用戶名作為參數。此方法的目的是從資料庫中查找與傳入參數匹配的用戶信息。
java
public class UserService {
// 假設User類已定義,包含必要的屬性和方法
public User findUser(String usernameOrObject) {
// 調用DAO層方法進行資料庫查詢
User user = userDao.findUser(usernameOrObject);
return user;
}
}
2. **調用DAO層代碼**:在`UserService`類中調用`userDao`對象的方法來執行資料庫查詢。這里的`userDao`應該是一個介面或實現了特定資料庫操作的類。在`userDao`中,通常會包含一個查詢方法,如`findUser`,用於根據傳入的用戶名或用戶對象獲取資料庫中的相應信息。
java
public class UserDao {
public User findUser(String usernameOrObject) {
// 這里是具體的資料庫查詢邏輯
// 例如,使用SQL查詢語句或調用ORM框架的方法
// 假設查詢結果為user
User user = new User(); // 根據查詢結果實例化User對象
return user;
}
}
3. **在JSP頁面接收返回數據並判斷**:在JSP頁面上,通過Ajax調用`UserService`中的`findUser`方法。使用Ajax技術(如jQuery的`.ajax()`方法)來非同步獲取數據,避免頁面刷新。獲取到數據後,再次進行判斷,以確定是否與預期相符。
javascript
$.ajax({
type: "GET",
url: "/findUser",
data: { usernameOrObject: "exampleUsername" },
success: function(response) {
// 在此處對返回的User對象進行判斷,例如檢查username屬性
if (response.username === "exampleUsername") {
console.log("找到匹配的用戶");
} else {
console.log("未找到匹配的用戶");
}
},
error: function(error) {
console.log("請求失敗:" + error);
}
});
通過上述步驟,實現了使用Ajax從資料庫中取出內容進行對比的功能。關鍵在於正確配置Ajax請求,調用適當的方法與介面,並在前端進行數據的判斷與處理。
4. 在jquery中怎麼獲取資料庫數據
var ajaxurl = path + "\/json/a.json";
url:ajaxurl,
他這里是把json格式的數據保存在一個頁面了,實際應用中你不需要這種的,就是傳版個url+參數,去後台讀取資料庫,權然後返回一個數組,前台顯示。 不要照搬別人的方法,$.post
$.ajax這里的方法你網路一下,看看使用方法就能看懂