使用父页面内的脚本刷新iframe

时间:2011-02-15 09:20:47

标签: php javascript xhtml iframe

我正在开发一些可以作为电子商务网站的一部分来完成作业。您可能会看一下它,并认为我应该只使用JS,但我们被告知几乎不使用任何JS,而是在查询SQL表时特别喜欢PHP。

我正在构建一些东西,当用户mouseOvers()目录中的任何图像时,一般的iFrame刷新基于具有当前焦点的图像的信息 - 它通过使用变量查询数据库来实现被装载。这是我使用JS提交刷新iFrame的表单的地方,并且当PHP被解析为服务器端时,刷新后信息可以看似动态地加载到用户。

除了目标iframe没有更新之外,这一切似乎都在起作用,而是在我的浏览器(Firefox)中的新标签页或窗口中加载页面。注意:此代码是草稿!

<div class="contentpane">


<div class="image1" onMouseOver="jsFunction();" onMouseOut="jsFunction2();">
    <img src="http://t0.gstatic.com/images?q=tbn:ANd9GcStRUHQMqvpCvdCyEwkO9DFxy0IY9fg1CP3uePBktHRMz8QznlQ" width=100 height=100/>

</div>

<div class="image2">
</div>

<div class="image3">
</div>

<script>
function jsFunction(){

    document.forms['testform'].elements['i1'].value =  "mouseOver";
    document.forms["testform"].submit();
    // force refresh on Mouse Over
    /*var f = document.getElementById('testiframe');
    f.contentWindow.location.reload(true);*/

}

function jsFunction2(){

document.forms['testform'].elements['i1'].value = "mouseOut";
document.forms["testform"].submit();

}

</script>


<iframe src="iframetest.php" id='testiframe' width="200" height="200">
<!-- using this roundabout way with iframes so that all interaction with SQL is via PHP and not JS-->
</iframe>

<!-- hidden form that has a target of the iframe, submitted by the js functions-->
<form id="testform" method="GET" target="testiframe" action="iframetest.php" >
    <input type="hidden" id="i1" name="i1" value="hey"> <!-- retrieved in php file by $_GET-->
</form>

iframetest.php的代码是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="style.css" />
<title>Home</title>
</head>

<body>

Dynamic content, will be pulled from SQL via PHP <br/> <br/>


<?php 
if(isset($_GET)){
echo $_GET["i1"];
} 
?>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这项任务是从数英里之外的ajax尖叫,但无论如何它在这里: 内容将显示在新页面/标签中,因为您未指定iframe名称,因此您的代码应如下所示:

<iframe src="iframetest.php" name="testiframe" width="200" height="200">
<!-- using this roundabout way with iframes so that all interaction with SQL is via PHP and not JS-->
</iframe>

<!-- hidden form that has a target of the iframe, submitted by the js functions-->
<form id="testform" method="GET" target="testiframe" action="iframetest.php" >
    <input type="hidden" id="i1" name="i1" value="hey"> <!-- retrieved in php file by $_GET-->
</form>

P.S。注意iframe标记从id='testiframe'name="testiframe"

的更改