1

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

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

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

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

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

4

3 回答 3

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". 要将 PHP 中的数据插入 HTML 文档,请将行:替换为alert('Server-side response: ' + whatigot);

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

快!您的 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

查看此示例以了解其工作原理。

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

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
于 2013-06-20T19:12:31.000 回答
1

这将用调用的 url 的内容替换 html 页面的正文。

$('body').load( url,[data],[callback] );
于 2013-06-20T19:11:38.073 回答
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>
于 2013-06-20T19:11:50.610 回答