通过同时使用一个链接在两个iframe中加载两个php或html页面

时间:2013-06-02 07:45:11

标签: php html

主页;的index.php

主页中有两个iframe

iframe name= topifrm
iframe name= content

我想点击“教育”链接,然后应该执行以下操作:

将topindex.php页面加载到topifrm并同时加载 将education.php页面加载到内容

如果您好,请发送给我如何访问php变量,在education.phptopindex.php中说“$ edu_id”..

1 个答案:

答案 0 :(得分:1)

我不得不说你要求的内容有很多问题。首先,不要使用IFrame。他们像很久以前一样被使用,谢天谢地,像ajax这样的东西到了。

另一个问题是:

  

如果你请发送给我如何访问php变量,请说   来自topindex.php页面的education.php中的“$ edu_id”..

请记住,PHP脚本在服务器上执行,而不是在浏览器中执行。因此,无论您在浏览器中看到什么,都是严格的html文件。为清楚起见,您无法从浏览器访问php变量。但它不是结束!因为许多人按照更好的方式做你想做的事。

让你说index.php返回这个:

<html>
  <head><title></title></body>
  <body>
  <div id="menu">
    <ul>
      <li><a data-phpid="education">Education</a></li>
    </ul>
  </div>
  <div id="container"></div>
  </body>
</html>

你需要一些javascript,因为没有javascript,用iframe正确地做这件事是不可能的。使用iframe,如果页面无法加载,您实际上无法获取“数据”或捕获异常。

我将使用jQuery,因为每个人都使用它,它可能更容易理解,因为它不是一个如此糟糕的库。在链接jquery之后,将它设置为脚本标记,它应该可以正常工作。

$(function () {
  // this will get executed when document is ready

  $('#container').load("/secondframe.php");
  $('#menu a').click(function() {
     var pageid = $(this).data('phpid');
     $("#container").load("/secondframe.php?phpid=" + pageid);
  });
});

也就是说,它应该可以工作,在你的php脚本中,你将检查$_GET['pageid']以获得你刚刚发送的“get”参数。

但如果我是你,我不会使用load但是将所有内容序列化为json,将json传递给Javacript对象以在浏览器上生成html而不是在服务器上呈现html。离开PHP,因为它永远不会给你任何好处,但只有噩梦。

学习javascript!学习它不要使用jQuery(jquery将阻止你理解如何在javascript中编写代码)。学习python来编写应用程序服务器,学习ruby并且不要限制自己使用rails。并学习一个口齿不清,因为真正的程序员程序与lambda演算!