-1

我有一个 HTML 页面,我想显示来自MySQL数据库的一些信息。我尝试放入<iframe src="xxx.php"></iframe>HTML 源代码。当我在 Firefox 和 Chrome 中打开 HTML 时,信息显示正确(该xxx.php文件包含一个简单的 mysql 查询),但它不适用于 IE。经过一番搜索,我发现这是 IE 安全问题的结果。

所以,我的问题是:是否有另一种方法可以将 MySQL 数据库中的内容显示为完全静态的 HTML 文件?我对 Javascript、Ajax 和 jQuery 几乎一无所知,所以如果必须使用它们,请尽可能详细地指导我,以便我能够遵循它。

谢谢你的帮助!

4

3 回答 3

2

如果您别无选择,只能提供静态 html,请尝试考虑通过 JavaScript 使用 AJAX 调用。

例如,在 jQuery 中,您可以执行以下操作:

<html>
.
.
.
<body>
    <!-- every other piece of html -->
    <div id="your_php_results"></div>
    <script type="text/javascript">
         $(function() {
             $.get('xxx.php', function(data) {
                 $('#your_php_results').html(data);
             });
         });
    </script>
</body>
</html>

xxx.php是 的相对路径绝对 URL xxx.php

在此实现中,xxx.php必须生成 HTML,然后将其放置在div. jQuery $.get-call 的作用是请求您在第一个参数中指定的位置,并获取资源生成的所有输出。例如,如果这是您的 php 文件:

<?php
    //xxx.php
    $data = array('Apfel', 'Birne', 'Banane'); //this is just example data
?>
<ul>
<?php foreach($data as $fruit) : ?>
    <li><?php echo $fruit ?></li>
<?php endforeach; ?>
</ul>

那么生成的输出将是:

<ul>
   <li>Apfel</li>
   <li>Birne</li>
   <li>Banane</li>
</ul>

这将被获取,$.get执行后生成的 HTML 文件将是:

<html>
.
.
.
<body>
    <!-- every other piece of html -->
    <div id="your_php_results">
    <ul>
        <li>Apfel</li>
        <li>Birne</li>
        <li>Banane</li>
    </ul>
    </div>
    <script type="text/javascript">
         // ...
    </script>
</body>
</html>

如果 JS 不是一个选项,则剩下 iFrame 变体,它也应该适用于所有浏览器,包括 IE。

编辑:更好的例子。

于 2012-08-08T17:06:55.363 回答
0

您可以改用 ajax 调用,并将您从 mysql 收到的信息附加到某个页面元素(例如 id 为“results”的 div):

$(document).ready(function(){
    $.ajax({
      url: "script.php",
      dataType: "html"
    }).done(function( html ) {
      $("#results").append(html);
    });
});
于 2012-08-08T17:05:43.060 回答
0

我认为,您的问题与 Internet Explorer 的 iframe 上的同源策略有关,此线程可能会对您有所帮助:Blank iFrame in IE

于 2012-08-08T17:37:29.517 回答