2013-05-03 13 views
0

我的代碼有問題。代碼將顯示錶格,但不是圖表some.php位於名爲bin的文件夾中,並且js也位於該文件夾中我真的不知道爲什麼當我試圖直接看一些時它不起作用。 PHP的圖形顯示,但是當我點擊index.php上的按鈕沒有圖表顯示,我也試圖把bin/js/js鏈接,但它導致一個問題,我不能再點擊按鈕2有人可以給我想法爲什麼會發生這種情況?或有人可以給我一個例子,我可以在爲什麼Raphael js Graph無法使用.html()

在index.php工作

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
    p { color:red; margin:4px; } 
    b { color:blue; } 
    </style> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 

</head> 
<body> 

<div class="action-button"> 
    <button id="1" value="1074">Button 1</button> 
    <button id="2" value="1074">Button 2</button> 
</div> 

    <div id="output"></div> 

<script> 
    $("button").click(function() { 
     var attr = $(this).attr("id"); 
     var val = $(this).val(); 

    $.ajax({ 
    type: "POST", 
     url: "bin/some.php", 
     data: { lookbookID: attr, type: val } 
    }).done(function(html) { 
     $("#output").html(attr + ' - ' + val + ' - ' + html); 
    }); 
}); 
</script> 
</body> 
</html> 

的some.php

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Raphaël · Analytics</title> 
     <link rel="stylesheet" href="demo.css" type="text/css" media="screen"> 
     <link rel="stylesheet" href="demo-print.css" type="text/css" media="print"> 
     <script src="js/raphael.js"></script> 
     <script src="js/popup.js"></script> 
     <script src="js/jquery.js"></script> 
     <script src="js/analytics.js"></script> 

    </head> 
    <body> 
<?php 
echo "lookbookID: ".$_POST['lookbookID']." - "; 
echo " type: ".$_POST['type'] 
?> 
     <table id="data"> 
      <tfoot> 
       <tr> 
        <th>1</th> 
        <th>2</th> 
        <th>3</th> 
        <th>4</th> 
        <th>5</th> 
        <th>6</th> 
        <th>7</th> 
        <th>8</th> 
        <th>9</th> 
        <th>10</th> 
        <th>11</th> 
        <th>12</th> 
        <th>13</th> 
        <th>14</th> 
        <th>15</th> 
        <th>16</th> 
        <th>17</th> 
        <th>18</th> 
        <th>19</th> 
        <th>19</th> 
        <th>20</th> 
        <th>22</th> 
        <th>23</th> 
        <th>24</th> 
        <th>25</th> 
        <th>26</th> 
        <th>27</th> 
        <th>28</th> 
        <th>29</th> 
        <th>30</th> 
        <th>31</th> 
       </tr> 
      </tfoot> 
      <tbody> 
       <tr> 
        <td>8</td> 
        <td>25</td> 
        <td>27</td> 
        <td>25</td> 
        <td>54</td> 
        <td>59</td> 
        <td>79</td> 
        <td>47</td> 
        <td>27</td> 
        <td>44</td> 
        <td>44</td> 
        <td>51</td> 
        <td>56</td> 
        <td>83</td> 
        <td>12</td> 
        <td>91</td> 
        <td>52</td> 
        <td>12</td> 
        <td>40</td> 
        <td>8</td> 
        <td>60</td> 
        <td>29</td> 
        <td>7</td> 
        <td>33</td> 
        <td>56</td> 
        <td>25</td> 
        <td>1</td> 
        <td>78</td> 
        <td>70</td> 
        <td>68</td> 
        <td>2</td> 
       </tr> 
       </tbody> 
      </table> 
      <div id="holder"></div> 

    </body> 
</html> 

回答

0

有2個問題,你的方法

  1. ajax請求獲取一個ent ire文件,並且您正嘗試將其注入頁面。你不應該那樣做。
  2. jQuery .html方法會將所有JavaScript標籤出於安全考慮,因此不會執行js。

你或許可以嘗試使用

$("#output")[0].innerHtml = attr + ' - ' + val + ' - ' + html 

這在某些瀏覽器上運行驗證這一理論,但正如我已經指出,這是無效的。既然它是一個完整的文檔,你可以嘗試使用一個iframe,或者修改php來返回一個html代碼片段而不是一個完整的文檔。