ajax 從后台傳值到前台


在后台進行數據庫查詢后 得到數據庫中的2個字段
我應該再把得到的2個字段返回前台
這個response.getWriter().write()好像不能成功
求指導

25 个解决方案

#1


要用PrintWriter類來寫入吧

#2


現在一般都是用json返回數據的

#3


引用 樓主 longburulin 的回復:
在后台進行數據庫查詢后 得到數據庫中的2個字段
我應該再把得到的2個字段返回前台
這個response.getWriter().write()好像不能成功
求指導

PrintWriter對象也是通過response.getWriter()來獲取的,所以不是這個問題
二樓正解,使用json

#4


response.getWriter.print(你的對象);

#5



response.setContentType("text/html;charset=gbk");
String str = JSONArray.fromObject(lists).toString();
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();

其中紅色的是一個集合,你可以把兩個數據組合成集合。

List<String> lists = new ArrayList<String>();
lists.add("數據");
lists.add("數據");

前台直接

data[0]取出第一個數據,data[1]取出第二個數據

#6


你也可以把兩個數據組合成對象

JSONObject  js = new JSONObject();
js.accumulate("對象變量",對象值);
response.getWriter().print(js.toString());

前台

data就是這個對象, 然后, data.getXX()就可以拿出值了

#7


推薦使用JSON,可以參考以下代碼
action:
  Map<String,Object> map = new HashMap<String,Object>();
            map.put( "total",total);
           map.put( "list", list);
            json = JSONObject. fromObject(map);
            try {
                 /*設置編碼格式,返回結果
                 * ***/
                response.setContentType( "text/html;charset=UTF-8");
                response.getWriter().write( json.toString());
           } catch (IOException e1) {
                e1.printStackTrace();
           }

Jsp頁面中用ajax請求后台:
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //獲取后台list
}
);

#8


requset.setAttribute();
requset.getAttribute();

#9


一般要先轉換成json格式  然后再往前台傳值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

#10


引用 7 樓 qqliang1314 的回復:
您好  我沒有用jQuery來寫
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //獲取后台list
}這個我應該怎么理解 
我代碼是這樣的if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}
我應該在updatelist怎么利用按照您所傳過來的數據呢

#11


引用 9 樓 sizhouzhou 的回復:
一般要先轉換成json格式  然后再往前台傳值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我還沒用過json 用json之前是不是要下載什么.jar的啊 然后用 response.getWriter().write( json.toString());來傳遞 前台接收怎么實現啊

#12


引用 11 樓 longburulin 的回復:
Quote: 引用 9 樓 sizhouzhou 的回復:

一般要先轉換成json格式  然后再往前台傳值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我還沒用過json 用json之前是不是要下載什么.jar的啊 然后用 response.getWriter().write( json.toString());來傳遞 前台接收怎么實現啊

不用jar包   用ajax接收
function getData2(){
//alert(2);
//ajax異步返回數據
$.ajax({
type:"Post",
url:"modelaction!QueryNewbet.action?aflag=2",
dataType:"json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success : function(data) {
var json=eval(data);
var result1="";
if(json.length!=0){
for(var i=0;i<json.length;i++){
 result1+="<span>用戶名:"+json[i].username+"</span>&nbsp;&nbsp;<span>中獎額:"+json[i].a+".00"+"</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
 }
}
$("#luck").html(result1);
},
  error:function(){
    //alert("no2");
  }
});
}
這樣需要自己布局  

#13


你可以直接放在session里 不用剛剛那個方法也行  剛剛那個是異步提交

#14


引用 5 樓 fenyeshu 的回復:
您好!前台用 response.getWriter().write(  參數);來接收么 
那參數我應該寫什么啊 
能詳細點指導么 萬分感謝啊

#15


引用 13 樓 sizhouzhou 的回復:
你可以直接放在session里 不用剛剛那個方法也行  剛剛那個是異步提交

謝謝您的回答 但是我想嘗試用一下
平時沒用json的時候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函數里面通過request.getParameter(參數)獲取在后台自己建的一個字段么
如果不按照你這$.ajax(
      url:
      method:
     success:function(data){
     
}
);來獲取 呢 
我在updatelist()怎么實現 
我很笨 也沒有用過jQuery來着啊

#16


引用 15 樓 longburulin 的回復:
Quote: 引用 13 樓 sizhouzhou 的回復:

你可以直接放在session里 不用剛剛那個方法也行  剛剛那個是異步提交

謝謝您的回答 但是我想嘗試用一下
平時沒用json的時候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函數里面通過request.getParameter(參數)獲取在后台自己建的一個字段么
如果不按照你這$.ajax(
      url:
      method:
     success:function(data){
     
}
);來獲取 呢 
我在updatelist()怎么實現 
我很笨 也沒有用過jQuery來着啊

如果你只是單純的兩個變量 可以 定義一個隱藏標簽
<input type="hidden" id="totalYeshu" value="${totalYeshu}">
<input type="hidden" id="totalNum" value="${totalNum}">
然后通過id   這樣獲取隱藏的值$("#totalYeshu").val()

如果是個集合 就要先獲取集合 然后循環了
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>

#17


引用 16 樓 sizhouzhou 的回復:
是集合哦 問題是我應該在Javascript中怎么獲取您所說的然后在我的updatelist函數里面json啊

if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}

#18


請問LZ你是想要實現什么??jsp頁面顯示嗎?

#19


引用 18 樓 sizhouzhou 的回復:
請問LZ你是想要實現什么??jsp頁面顯示嗎?

我的本意是jsp頁面通同用ajax來實現查詢數據庫嘛 然后得到數據庫中的2個字段 嘻嘻 然后想用Javascript動態創建返回的字段顯示在原來的jsp頁面上面哦

#20


引用 19 樓 longburulin 的回復:
Quote: 引用 18 樓 sizhouzhou 的回復:

請問LZ你是想要實現什么??jsp頁面顯示嗎?

我的本意是jsp頁面通同用ajax來實現查詢數據庫嘛 然后得到數據庫中的2個字段 嘻嘻 然后想用Javascript動態創建返回的字段顯示在原來的jsp頁面上面哦

那何必那么麻煩,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用這個標簽獲取集合,遍歷即可啊  如果要添加判斷可以用<%%>javascripe

#21


引用 20 樓 sizhouzhou 的回復:
您說的沒錯 但是session里面的值我要用在Javascript腳本中創建div等等操作啊 您能直白一點指導我么 比如5樓的fenyeshu告訴我的那樣 但我還搞不懂我是應該怎么獲取json的 他說前台可以直接data[0]取出第一個數據,data[1]取出第二個數據 但先應該獲取他的json什么的吧

#22


直接 打開控制台,先看有沒有錯誤,~

#23


引用 20 樓 sizhouzhou 的回復:
Quote: 引用 19 樓 longburulin 的回復:

Quote: 引用 18 樓 sizhouzhou 的回復:

請問LZ你是想要實現什么??jsp頁面顯示嗎?

我的本意是jsp頁面通同用ajax來實現查詢數據庫嘛 然后得到數據庫中的2個字段 嘻嘻 然后想用Javascript動態創建返回的字段顯示在原來的jsp頁面上面哦

那何必那么麻煩,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用這個標簽獲取集合,遍歷即可啊  如果要添加判斷可以用<%%>javascripe

雖然沒有用json來解決 但還是找到其他的方法弄好了 不管怎樣 還是謝謝您了

#24


引用 23 樓 longburulin 的回復:
Quote: 引用 20 樓 sizhouzhou 的回復:

Quote: 引用 19 樓 longburulin 的回復:

Quote: 引用 18 樓 sizhouzhou 的回復:

請問LZ你是想要實現什么??jsp頁面顯示嗎?

我的本意是jsp頁面通同用ajax來實現查詢數據庫嘛 然后得到數據庫中的2個字段 嘻嘻 然后想用Javascript動態創建返回的字段顯示在原來的jsp頁面上面哦

那何必那么麻煩,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用這個標簽獲取集合,遍歷即可啊  如果要添加判斷可以用<%%>javascripe

雖然沒有用json來解決 但還是找到其他的方法弄好了 不管怎樣 還是謝謝您了

客氣了!

#25


引用 6 樓 fenyeshu 的回復:
你也可以把兩個數據組合成對象

JSONObject  js = new JSONObject();
js.accumulate("對象變量",對象值);
response.getWriter().print(js.toString());

前台

data就是這個對象, 然后, data.getXX()就可以拿出值了

我提示undefined,這是為什么,getXX(),應該直接寫成data.xx吧

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com