将PHP结果放在HTML页面中

时间:2013-06-20 19:08:53

标签: php javascript jquery include

我有一个PHP文件,其代码可以回显一些HTML。我想向一些最终用户提供PHP文件,可以这样做:

<?php include 'file.php'; ?>

不幸的是,我的用户将拥有index.html,但这不起作用。我不想让我的用户将HTML文件更改为PHP。另一种方法是修改.htaccess文件:

<Files index.html>
AddType application/x-httpd-php .html
</Files>

我也不想问他们这个问题。那么我的其他选择是什么?是否可以在HTML文件中显示回显的结果?也许借助一些Javascript?

3 个答案:

答案 0 :(得分:7)

您可以使用AJAX执行此操作。它可能看起来有点挑战,但坦率地说比许多人想象的要简单得多。事实上,这很容易。

Ajax包含在你的javascript代码中,看起来像这样:

$('#stSelect').change(function() {
    var sel_stud = $(this).val();
    //alert('You picked: ' + sel_stud);

    $.ajax({
        type: "POST",
        url: "your_php_file.php",
        data: 'theOption=' + sel_stud,
        success: function(whatigot) {
            alert('Server-side response: ' + whatigot);
        } //END success fn
    }); //END $.ajax
}); //END dropdown change event

请注意,PHP文件中的数据会出现在AJAX调用的成功函数中的HTML文档中,并且必须在那里处理。这就是您将接收到的数据插入DOM的位置。

例如,假设您的HTML文档包含id="myDiv"的DIV。要将PHP中的数据插入到HTML文档中,请将以下行替换为alert('Server-side response: ' + whatigot);

$('#myDiv').html(whatIgot);

的Presto!您的DIV现在包含从PHP文件回显的数据。


可以通过更改控件的值(如上例所示)或仅在文档加载时触发ajax:

$(function() {
//alert('Document is ready');

    $.ajax({
        type: "POST",
        url: "your_php_file.php",
        data: 'Iamsending=' + this_var_val,
        success: function(whatigot) {
            //alert('Server-side response: ' + whatigot);
        } //END success fn
    }); //END $.ajax
}); //END document.ready

请查看this example有关其工作原理的建议。

请注意,上面的示例使用jQuery,因此在页面的标记中需要此引用:

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>

答案 1 :(得分:1)

这将用名为。

的网址的内容替换html页面的主体
$('body').load( url,[data],[callback] );

答案 2 :(得分:1)

如果他们可以添加javascript,ajax请求应该完成工作......

<script>
var req = new Request({
    method: 'get',  
    url: 'file.php',
    onRequest: function() { // loading image    
    },
    onSuccess: function(response) {
        document.getElementById("destination").innerHTML = response;
    }
}).send();
</script>

他们还需要一个div代码才能进入:

<div id="destination"></div>