2011-12-17 34 views
1

我想使用JSON將一些外部數據加載到JQTouch應用程序中。我的問題是我不知道要使用什麼j以及在哪裏放置它。使用JSON爲JQTouch加載外部數據

我的html非常簡單 - 幾個div在應用程序中的頁面。

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript"> google.load("jquery", "1.4.2"); </script> 
    <script type="text/javascript" src="jqtouch/jqtouch.min.js" charset="utf-8"></script> 
    <script type="text/javascript"> $.jQTouch(); </script> 
    <script src="javascripts/cricket.js" type="text/javascript"></script> 
    <style type="text/css" media="screen">@import "jqtouch/jqtouch.min.css";</style> 
    <style type="text/css" media="screen">@import "themes/apple/theme.css";</style> 
    <title>Cricket</title> 

</head> 
<body> 

<!-- "Main Menu" --> 
<div id="home" class="current"> 
<div class="toolbar"> 
    <h1>Cricket</h1> 
</div> 

<ul class="rounded"> 
<li class="arrow"><a href="#clubs">Clubs</a></li> 
    <li class="arrow"><a href="#fixtures">Fixtures</a></li> 
<li class="arrow"><a href="#twitter">Twitter</a></li> 
</ul> 

<ul class="rounded"> 
<li class="arrow"><a href="#about" class="slideup">About</a></li> 
</ul> 


</div> 


<!-- "Clubs" - Will contain the list of clubs --> 
<div id="clubs"> 

<div class="toolbar"> 
     <h1>Clubs</h1> 
     <a class="button back" href="#">Back</a> 
</div> 

<div id="clubslist"> 

    Loading.... 

</div> 


</div> 

<!-- "Fixtures" - Will contain the list of fixtures --> 
<div id="fixtures"> 
<div class="toolbar"> 
    <h1>Fixtures</h1> 
    <a class="button back" href="#">Back</a> 
</div> 

<ul class="rounded"> 
    <li>Loading....</li> 
</ul> 

</div> 

<!-- "Twitter" - Will contain the tweets --> 
<div id="twitter"> 
<div class="toolbar"> 
    <h1>Twitter</h1> 
    <a class="button back" href="#">Back</a> 
</div> 

<ul class="rounded"> 
    <li>Loading tweets....</li> 
</ul> 

</div> 


<!-- "About" - Will contain info about the app/contact --> 
<div id="about"> 
<div class="toolbar"> 
    <h1>About</h1> 
    <a href="#" class="back">Back</a> 
</div> 
just some text 
</div> 

那麼這就是我認爲我需要使用加載外部數據(來自clubs.php)的腳本。

<script type="text/javascript"> 
      $.getJSON('http://www.mydomain.com/clubs.php', function(data) { 

    $.each(data, function(i,item){ 
       $('clubslist').append('<li>' + item.club_name + '</li>'); 

      }); 
    }); 

    </script> 

我的問題是我需要把它放在哪裏以及它如何被觸發? 我想我需要把它放在一個單獨的JS文件中(我已經有一個叫做cricket.js的鏈接到html文件的頭部)。那麼我假設我需要一些東西來觸發JS運行......比如PageAnimationEnd或類似的東西?

對於它的價值,這是什麼clubs.php返回

{"posts":[{"post":{"club_id":"1","club_name":"ABC Cricket Club","club_postcode":"AB12 3DE"}},{"post":{"club_id":"2","club_name":"Beston Cricket Club","club_postcode":"NG1 9XY"}}]} 

我理想的情況是,當用戶點擊菜單頁面上的「俱樂部」鏈接,這將激活頁面動畫哪裏用戶然後看到'正在加載'。在後臺,Javascript被激發,從clubs.php中檢索數據,然後將其附加到#clublist div中。

我覺得我很接近,但失去了最後的畫龍點睛。所有建議表示讚賞 Tom

回答

0

在我的頁面中,我執行以下操作,在此示例中,我從後端腳本中拉出一個表。

function prevOrders() 
    { 
    $("#chkPrevOrd").html('Please wait') 
    $.ajax({ 
     type: "POST", 
     url: "http://"+document.domain+"/store.php", 
     data: { method: "prevOrders"},  
     dataType: "json", 
     timeout: ajaxTimeout, 
     success: function(data){ 
     if (data.prevOrders) 
      { 
      $("#prevOrderStatus").html(data.prevOrders); 
      $("#chkPrevOrd").html('Update')  
      }    
      }, 
     error: function() { 
     alert('This is taking too long. You could try again now, or wait and try again later.'); 

      } 
});  
    } 

#prevOrderStatus此頁面上有一個DIV,#chckPrevOrd只是一個按鈕,讓用戶知道發生了什麼。如果#chkPrevOrd實際上位於不同的頁面上,您可以將JQT.Goto('cointainer div for #chkPrevOrd')轉到此頁面。

+0

非常好,謝謝你,我會給它一個。我是否正確地認爲你實際上在php文件中格式化表格html,然後將完成的html表格傳遞給應用程序? – Hardball 2011-12-20 08:45:37