将内容从MySQL数据库获取到html页面中


Get content from MySQL database into html page

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

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

感谢您的任何帮助!

如果您别无选择,只能提供静态 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 是指向 xxx.php 的相对路径绝对 URL。

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

<?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。

编辑:更精细的例子。

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

$(document).ready(function(){
    $.ajax({
      url: "script.php",
      dataType: "html"
    }).done(function( html ) {
      $("#results").append(html);
    });
});
我认为

,您的问题与Internet Explorer的iframe上的同源策略有关,此线程可能会对您有所帮助: IE中的空白iFrame