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

时间:2012-08-08 16:57:48

标签: php mysql html

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

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

感谢您的帮助!

3 个答案:

答案 0 :(得分: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是指向xxx.php的相对路径绝对网址。

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

编辑:更好的例子。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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