2014-01-24 107 views
0

我有以下ajax代码,我想在html页面上打印值。从ajax打印返回值调用

var val = $.ajax({ 
       type: "post", 
       url: "count.jsp", 
       data: "", 
       cache: false, 
       success: function(str) 
       { 
       return str; 
       } 
     }); 

     alert (val); 

我想用val打印。下面的代码是count.jsp

ResultSet rs=pst.executeQuery(); 
if(rs.next()) 
{ 
    val=rs.getInt(1); 
} 
out.println(val); 

如何在页面上打印val?

回答

1

ajax是异步的。这意味着它会在ajax函数本身完成后结束一段时间。所以你不能简单地从你的成功处理程序中返回一个值,并期望从ajax函数返回值。

事实上,从成功处理程序返回值完全没有任何作用。这个价值可以追溯到ajax基础设施的内部。

你需要做的是把你的警报放入成功处理程序。想要使用Ajax调用的结果的任何代码必须在成功处理程序,或从成功处理程序调用:

$.ajax({ 
    type: "post", 
    url: "count.jsp", 
    data: "", 
    cache: false, 
    success: function(str) { 
     // put code here to use the ajax data 
     // or call a function here and pass it the ajax data 
     alert(str); 
    } 
}); 

此外,每从jQuery .ajax()功能jQuery documentation返回值是一个jqXHR对象。

+0

嗨,谢谢,给我输出。但是,当试图显示像成功的元素:function(str) {\t \t \t \t \t //document.write(str); \t \t \t的document.getElementById( “测试”)。值= STR}} 上itsnot

zdhim

+0

'的document.getElementById( “测试”)。值设置值=从成功处理程序内str'应,如果你工作得很好有'id =“test”'的div。不要在ajax调用中使用'document.write()',因为这会清除整个文档。 – jfriend00

+0

现在工作,但

Rate this Site :
设置下一行中的值如何使它在同一行。我正在使用document.getElementById(“test”)。innerHTML = str – zdhim