2012-03-14 134 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