2013-02-11 29 views
0

目前,我有一個是這樣的交互:jQuery AJAX API交互。如何使用html視圖來處理數據輸出?

AJAX調用我的網站控制器 - > API內容通過PHP加載和 輸出 - > JavaScript的輸出視圖直接進入頁面

有沒有辦法從某種外部文件加載HTML?

我不想最終做這樣的事情,因爲它會改變html凌亂。

html = ''; 

for (i = 0; i < jsonData.length; i++) { 
    html += '<div class="blah"><b>Content goes here<b><br>'; 
     html += '<div class="blah_nested">' + jsonData[i].awesomeness + '</div>'; 
    html += '</div>'; 

    $("#some_div").html(html); 
} 

回答

1

創建一個包含該代碼並在請求中使用json響應的php文件。

例子(data.php):

<div class="blah"><b>Content goes here<b><br> 
    <div class="blah_nested"><?php echo $_GET['jsondata']; ?></div> 
</div> 

然後執行:

html = ""; 
for (i = 0; i < jsonData.length; i++) { 
    $.get('data.php?jsondata=' + jsonData[i].awesomeness, function(response){ 
     html += response; 
    }); 
} 

我編輯,以使其他原來的代碼更直接匹配。

+0

謝謝隊友。很有幫助! – Sneaksta 2013-02-11 05:56:43

+0

這是我的完美回覆,直到我嘗試訪問視圖。問題是我在視圖中使用特定於框架的方法,並且由於我只加載視圖,所以它們不起作用。 – Sneaksta 2013-02-11 07:51:15

0

是的,你可以製作一個包含所有可重複代碼的html文件。

例如在HTML文件中調用模板,你可以有:

<div class="blah"><b>Content goes here<b><br> 
    <div class="blah_nested"></div> 
</div> 

然後在你的JS,你可以使用。獲得搶代碼。

 $.get('templates.html', function(html){ 
      var h = $(html); 
      var blah = h.find('.blah').html(); 
     }); 

現在你已經得到了你的代碼。你仍然必須把它放在一個for循環,你仍然得把你的信息,這將是這個樣子:

$('blah_nested').text(jsonData[i].awesomeness);

但是現在你不必去你的js改變html。這是一個更多的js代碼,但它保持一切分離。

相關問題