2014-07-02 55 views
-4

我想附加一個span,其中包含PHP代碼,我知道應該有一種方法可以通過AJAX調用腳本。使用追加jQuery編譯Ajax

但我是jQuery的初學者,所以我需要有人幫助解決問題。

這裏是我的代碼:

$(document).ready(function(){ 
    $("#btn2").click(function(){ 
    $("#grid").append("<?php the_sub_field('image');?>"); 
    }); 
}); 
+1

首先,您永遠不應該混用JavaScript和PHP。現在你只是將一個字符串附加到div上,沒有任何事情會發生。 – Jonast92

+0

這是不是很清楚你想追加什麼。在頁面加載時是否已知附加的值?如果是這樣,那麼當前的語法是正確的,因爲您只需從PHP代碼中將該值發送到JavaScript代碼。如果不是,價值將如何計算?它可以計算客戶端,還是需要計算服務器端?如果服務器端,那麼你需要有一個服務器端處理程序(頁面)來執行計算並返回結果。然後你可以使用'.ajax()'或其他等價物來獲取值。 – David

+0

你不能那樣做。 PHP在服務器上運行並轉換爲html。相反,你想要的是追加從我的服務器的HTML響應我認爲 –

回答

1

你不會要能夠有執行該PHP代碼。 PHP在服務器上運行,然後發送到瀏覽器。 JavaScript在瀏覽器中,無法解釋PHP。所以,你需要發送一個AJAX調用到服務器。

的JavaScript $.ajax({ url: 'desintation.php', success: function(response){ console.log(response); } });

PHP:desination.php the_sub_field('image');

0

雖然我強烈建議你不這樣做,你可以創建一個PHP腳本包含你的Javascript,然後輸出正確的內容類型標題:

<?php 
// jsfile.php 
header('Content-type: text/javascript'); 
?> 
$(document).ready(function(){ 
    $("#btn2").click(function(){ 
    $("#grid").append("<?php the_sub_field('image');?>"); 
    }); 
}); 

,然後鏈接到該文件與腳本標籤:

<script src='/path/to/jsfile.php'></script> 
0

你的問題是,你只是追加一個字符串到div,結果會是這樣的:

<div id="grid"><!--?php the_sub_field('image');?--></div> 

我只是tried it out自己,這是結果,當你點擊後檢查HTML按鈕。我想它甚至被評論出來只是爲了有人試圖做一些非常可疑的事情。

爲什麼? JavaScript是客戶端,PHP是服務器端,PHP代碼不會運行,除非它被告知在服務器上運行。

AJAX是當你從客戶端與服務器通信,並且你通常從服務器得到某種迴應。你可以告訴服務器你想要一些數據,圖像等等,然後發送到客戶端,它可以處理數據,但是它喜歡。

看看實際AJAX是如何執行的。而且順便說一下,如果你認爲你可以混合使用JavaScript和PHP而沒有任何問題,那麼你會有一段糟糕的時間。