2012-03-14 86 views
0

我有这样的代码片段(不一定完整,忽略结束脚本标签)::通过jquery ajax为datagrid加载数据?

<script type="text/javascript"> 
function gotoa(){ 
    var h = $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp", function(result) { 

    }); 
    alert(result); 


var myVar= h; 
var storedata={ 
      identifier:"ID", 
      label:"name", 
      items: myVar 
    }; 

var store = new dojo.data.ItemFileWriteStore({data: storedata}); 

为GetJson.jsp的代码::

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
    <%@ page import="MyPackage.PopulateTextbox" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<% 

String temp1; 
PopulateTextbox obj = new PopulateTextbox(); 
temp1 = obj.method(); 
%> 

<%=temp1 %> 

</head> 
<body> 


</body> 
</html> 

我第j查询get方法。我传入的URL返回一个Json数组字符串。 URL的输出::

[{"ID":1,"Names":"Shantanu","Email":"[email protected]"},{"ID":2,"Names":"Mayur","Email":"[email protected]"},{"ID":3,"Names":"Rohit"},{"ID":4,"Names":"Jasdeep"},{"ID":5,"Names":"Rakesh","Email":"[email protected]"},{"ID":6,"Names":"Divyanshu"},{"ID":8,"Names":"hello"},{"ID":9,"Names":"fine"},{"ID":10,"Names":"shivani"}] 

现在我想这个输出为我的数据网格即我想,VAR myVar的应该得到这个值,然后将上dojo.data.ItemFileWriteStore传递。我无法这样做。请帮忙 ?谢谢。

+0

我喜欢“请帮忙吗?”中的问号标记 – joidegn 2012-03-14 12:39:49

回答

0

$.get()函数是使用$.ajax()函数进行AJAX调用的简写 - 并且众所周知,AJAX中的第一个A代表异步。如果您想使用AJAX调用的响应来执行代码,则需要将该代码放入传递给$.get()的回调函数中。

它可能看起来像这样(虽然没有代码是完整的,我不能肯定地说:

function gotoa() { 
    var store; 

    var h = $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp", function(result) { 
     var myVar = result; 
     var storedata={ 
      identifier:"ID", 
      label:"name", 
      items: myVar 
     }; 

     store = new dojo.data.ItemFileWriteStore({data: storedata}); 
      // do whatever with store here, if necessary 
    }); 
} 
+0

请问您可以帮我一些代码..怎么样? – 2012-03-14 12:49:03

+0

已经尝试过安东尼......但是没有工作..看到上面的帖子...... :( – 2012-03-15 05:40:19

0

修改脚本标签是这样的:

<script type="text/javascript"> 
function gotoa(){ 
    $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp", function(result) { 
     var storedata={ 
      identifier:"ID", 
      label:"name", 
      items: result 
      }; 

      var store = new dojo.data.ItemFileWriteStore({data: storedata}); 
    }); 

} 
</script> 

的代码GetJson.jsp是:

<%@page contentType="application/json" %> 
<%@page import="MyPackage.PopulateTextbox" %> 
<% 
String temp1; 
PopulateTextbox obj = new PopulateTextbox(); 
temp1 = obj.method(); 
%> 

<%=temp1 %> 

现在称之为gotoa() 它将初始化ajax调用,并在回调函数中获得响应

+0

我没有得到它ryt Nemoy .. :(它不显示任何错误也没有显示任何结果也在数据中我认为项目:没有得到合适的值,但是当我打开URL时,我得到了我在问题中输出的Json数组值。我们将内容类型更改为文本/ HTML而不是应用程序/ json?谢谢。 – 2012-03-14 13:43:00

+0

提醒响应并在此处发布,或者可以公开该链接吗? – Nemoy 2012-03-14 14:47:39

+0

下面是打开链接http:// localhost:8080/2_8_2012时的输出/jsp/GetJson.jsp和content type text/html:[{“ID”:1,“Names”:“Shantanu”,“Email”:“[email protected]”},{“ID”:2 “名称”: “MAYUR”, “电子邮件”: “[email protected]”},{ “ID”:3 “名称”: “罗希特”},{ “ID”:4 “名称” : “Jasdeep”},{ “ID”:5 “名称”: “勒凯什”, “电子邮件”: “[email protected]”},{” ID“:6,”名称“:”Divyanshu“},{”ID“:8,”名称“:”你好“}]现在,当内容类型是应用程序/ JSON我得到相同的所有HTML标签也身体所有,输出放置在body标签之外,其中放置scriptlet代码。 – 2012-03-15 05:25:33