单击div时加载动态内容

时间:2015-04-14 17:56:09

标签: javascript php jquery html

我希望你能帮助我。 我想使用动态调用服务器来获取需要加载到div的内容。

页面底部有一个固定的菜单,当点击标签时调用一个函数并告诉它要更新哪个帧,然后在函数中生成一个XMLHttpRequest(或者在旧IE版本的情况下使用ActiveX等)。 ),使用该请求导航到服务器上需要包含php片段的预定义位置,然后将其设置为相应输出节的innerHTML。

我还想在函数外部跟踪已经加载了哪些页面的数组,这样它就不会因为用户第二次点击链接而再次加载页面。

HTML:

<div id="FixedMenu">
<input type="radio" name="radio-set" checked="checked" id="main"/>
  <a href="#1">Main</a>
  <input type="radio" name="radio-set" id="2nd"/>
  <a href="#2">2nd</a>
  <input type="radio" name="radio-set" id="3rd"/>
  <a href="#3">3rd</a>
  <input type="radio" name="radio-set" id="4th"/>
  <a href="#4">4th</a>
  <input type="radio" name="radio-set" id="4th"/>
  <a href="#5">4th</a>  
</div>      
<div class="scroll">
   <section class="main">
     <!-- loads the main context. -->
   </section>
   <section id="2nd" >
        <!-- this section should load the php file only when the button is clicked. -->
   </section>
   <!-- section 3rd - 5th... -->
</div>

JAVASCRIPT

<script>
    $(document).ready(function(){
      $("#2").click(function(){
        $("#2nd").load('MyURL'); 
      });
    });
</script>

我是否有机会将php文件放在同一个文件夹中,而不是将该函数指向网址?

3 个答案:

答案 0 :(得分:0)

你应该可以这样做:

$("#2nd").load('/path/to/my/php/page/here');

你试过吗

答案 1 :(得分:0)

根据this documentation,您似乎可以。它仍然是一个URL,因为jQuery仍然是一个AJAX请求来获取给定的资源。请记住,您需要这样做,因为您的PHP服务器确实需要解析文件以便像PHP一样运行。

$('.content').load('dynamic_content.php');

回应海报的评论:

特别注意文档中有关加载页面片段的部分。

$( "#result" ).load( "ajax/test.html #container" );

尽管PHP仍然需要解析整个请求的脚本,但您只能使用这种语法呈现它的特定部分,这可能会有助于加快速度。

另一个想法可能不是指向整页,而是指向将返回您正在寻找的数据的API端点。这可以避免整页的额外逻辑和/或返回JSON数据,以便更轻松地进行JS工作。

答案 2 :(得分:0)

你尝试的是正确的方法。

$("#2nd").load('MyURL'); 

'MyUrl'应包含相对于当前文件的php文件链接。

如果您要缓存内容,只需使用名为load的{​​{1}}的第二个参数即可保存您的内容。