2014-09-04 25 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