我有一个HTML页面,我想显示MySQL
数据库中的一些信息。我尝试将<iframe src="xxx.php"></iframe>
放在HTML源代码中。当我在Firefox和Chrome中打开HTML时,信息显示正确(xxx.php
文件包含一个简单的mysql查询),但它不适用于IE。经过一番搜索,我发现这是IE安全问题的结果。
所以,我的问题是:是否有另一种方法可以将MySQL数据库中的内容显示为完全静态的HTML文件?我对Javascript,Ajax和jQuery几乎一无所知,所以如果必须使用它们,请尽可能详细地指导我,以便我可以遵循它。
感谢您的帮助!
答案 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