2014-08-29 40 views
-3

所以我有這個網站項目,我正要加載內容div中的內容。如何運行通過JS動態添加到DOM的PHP代碼

<div id="content_wrapper"> 
    <!-- content goes here --> 
</div> 

content.js文件,

var c_index = 'Some cool text stuff<br>' + 
       'pretty neat, and also with a<br>' + 
       '<img src="image1.png" alt="thumb1">'; 

var c_service = '/* other stuff in here */'; 

並根據點擊我做的:

$('#content_wrapper').html(c_index); // or different content vars 

我的問題是我怎麼能保持這種結合php。例如一些信息從數據庫中讀取:

var c_dynamic = '<?php echo $output["row1"] . ' ' . $output["row2"] ?>'; 

$('#content_wrapper').html(c_dynamic); 

有什麼相似的,我可以追加PHP,然後無需重新加載頁面運行它。

+0

爲什麼這是低估,認真。 – supersize 2014-08-29 17:02:31

+1

http://api.jquery.com/jquery.ajax/ – 2014-08-29 17:04:14

+1

另外,千萬不要把PHP放入你的JS代碼中。創建一個返回所需內容的PHP腳本,然後使用$ .ajax來檢索它並相應地修改DOM。 – 2014-08-29 17:05:29

回答

1

我不知道這是你在找什麼http://php.net/manual/en/function.eval.php,但即使PHP認爲這是一個可怕的想法。如果它是最初傳遞的數據,並且稍後需要顯示,則將其存儲在一個javascript var中,並在需要時訪問它,否則如問題的註釋中所述,請在需要時進行ajax調用以檢索它。

+0

謝謝,這是一個關於將PHP的jquery首先存儲在變量中,然後再訪問它的好處。這完全符合我嘗試做的事情。 – supersize 2014-08-29 17:12:53

0

你可能不能。您的PHP代碼在JavaScript啓動之前已經完成執行。你在屏幕上看到的不是PHP代碼,它是PHP代碼的輸出。解釋器不運行它,並且不會運行任何你添加到它的東西。

可能有一些竅門,我不知道,但我敢打賭,你不能這樣做。

另一種做你想做的事情的方法可能是從你的JavaScript中調用一個PHP腳本來發送一些JSON。有問題的PHP腳本會爲您運行數據庫查詢,並將您想要呈現給用戶的信息作爲JSON發回。然後,您可以將檢索到的信息插入到DOM中。

http://php.net/manual/en/function.json-encode.php

這個功能應該派上用場。