2012-02-25 54 views
0

比方說,我有一些例子內容「的test.html」的文件:用PHP包括一個HTML文件作爲jQuery對象

<table> 
<tr> 
    <td>'Test'</td> 
    <td>Test "2"</td> 
</tr> 
</table> 

而且我想使用,作爲一個jQuery對象。我的第一本能會嘗試:

var $testobject = $("<?php include('./test.html');?>"); 

但隨着換行符和引號的test.html,這將失敗。我特別需要將test.html文件作爲一個jQuery對象,因此它在加載時隱藏起來,並放在頁面上的各個觸發腳本的不同位置,我寧願使用比jQuery加載更靜態的PHP方法。必須有一個簡單的技巧來管理這個...

+0

嘗試使用'file_get_contents'代替'include'。 – 2012-02-25 14:51:14

+0

您可以簡單地使用jQuery [ajax load](http://api.jquery.com/load/)函數將對象加載到變量中 – 2012-02-25 14:51:30

+1

我特別不想使用jQuery加載。 – user173342 2012-02-25 14:52:26

回答

4

閱讀使用file_get_contents靜態文件,並處理特殊字符使用json_encode

var $testobject = $(<?php echo json_encode(file_get_contents('./test.html'));?>); 

例如,如果test.html包含:

<a href="/"> 
    Test 
</a> 

然後輸出將是:

var $testobject = $("<a href=\"\/\">\n Test\n<\/a>\n"); 
+0

使用我的例子中的test.html,失敗與此test.php的文件(沒有出現): user173342 2012-02-25 14:59:48

+0

我應該補充一點,PHP回聲成功,HTML就像你描述的那樣出現。但它不會顯示從追加到文檔正文... – user173342 2012-02-25 15:01:08

+0

@user您錯過了jQuery包裝器。 **'$('**''**');'**。 – 2012-02-25 15:01:34

0

使用負荷:

創建一個div

$('#test').load('test.html'); 

VAR的TestObject = $( '#DIV')找到( '表');

0

使用輸出緩衝:

<?php 
ob_start(); 
include('./test.html'); 
$data = ob_get_contents(); 
ob_end_clean(); 
?> 

var $testobject = $("<?=$data;?>");