2014-09-04 56 views
0

我想讓JavaScript運行一些PHP代碼,然後從頁面上的PHP代碼打印結果。我發現了一些使用Ajax的代碼,並將PHP代碼放入外部文件中。我發現的代碼似乎在「al​​ert」對話框中運行PHP代碼,我無法弄清楚如何在當前頁面上顯示PHP的輸出。要JS功能使用AJAX來運行PHP,然後輸出PHP頁

我是新來的,所以學習,「成功」功能有警報(響應),所以我知道它爲什麼做警報;但我試圖使它打印在頁面上,而不是和不能讓它這樣做...

這裏是我的JS使用Ajax:

<script type="text/javascript"> 
var answer = "gman wants a function to run php"; 
$.ajax({ 
type: 'GET', 
url: 'http://jba.gtdsites.com/script.php', 
data: 'answer=' + answer, 
success: function(response) { 
    alert(response); 
} 
}); 
</script> 

這裏是外部PHP文件(的script.php) :

<?php 
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
    && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' 
) { 
    // AJAX request 
    $answer = $_GET['answer']; 
    echo "answer is: " . $answer; 
    ?> 
    <br/> 
    <?php 
    echo "<br/>this is working."; 
    // ... 
} 
?> 

我一直在閱讀很多試圖找出這一點,但沒有連接點,沒有得到任何地方;所以我想知道如果有人能告訴我如何讓它只輸出頁面上的PHP的東西,而不是做一個警報?

感謝這麼多...

+0

所以你的問題是如何改變現有元素的含量頁面/在DOM中? – 2014-09-04 20:13:16

+0

jQuery的'append','text','html'或其他任何方法都可以做到這一點。 – adeneo 2014-09-04 20:14:17

回答

2

如果你有一個ID爲 'ajax_content' 您的文檔內一個div只需更換

alert(response); 

$('#ajax_content').html(response); 
+0

我想你的意思是'$('ajax_content')。html(response);' – 2014-09-04 20:22:01

+0

@火箭Hazmat,是的你是對的。 $('ajax_content').html(response)或$('ajax_content')。innerHTML = response是一些選項。感謝您的糾正。 – 2014-09-04 20:25:03

+0

'$('ajax_content')。innerHTML = response;'仍然不太正確。 '.innerHTML'是DOM元素的屬性,而不是jQuery對象。你可以執行$('ajax_content')。get(0).innerHTML = response;',但這與$('ajax_content')。html(response);'相比只是愚蠢的。 – 2014-09-04 20:35:27

2

可以追加/代替你在你需要的html元素中的ajax響應。就像如果裏面要打印您的HTML元素:

<div id="div-to-print-ajax-response"></div> 

那麼你的JS功能會是這樣的:

+0

謝謝,得到了以下工作的答案... – 2014-09-04 21:15:32