使用jQuery + php包含带有ajax的文件?

时间:2011-11-30 12:27:33

标签: php jquery ajax

我有一个链接列表,点击后会打开链接的相应DIV。默认情况下,使用jquery .hide()和css display:none。

隐藏这些div

这些div都包含一个php include到一个带有jquery产品zoomer的文件,并且由于我的方式,只有第一个工作,源命令中的div不能工作(它们是包括,但jquery不起作用)因为我假设它冲突。

我希望能够解决这个明显的冲突,但不知道问题是什么,而且由于网站是“秘密”,我无法在这里显示来源而不会泄露它是什么

所以,我在考虑 - 不是通过php包含这些文件,而是在点击链接时加载它们,所以在任何时候只有其中一个包含在页面中!

这可能是使用jquery和一些PHP吗?

---编辑---

进一步调查 - 感谢下面的一些评论,看起来jQuery的.load()看起来很合适,但对我来说不起作用。这是我的jQuery:

`

    $('.urbaneCarousel li.dowrImg').click(function(){
        $('ul.urbaneCarousel').hide();
        $('.dowrDiv, .dowrDiv div').show();
        $('.dowrDiv .insert').load('path/to/dowr.php');
        return false;
    });

`

有什么建议吗?我100%肯定路径/到/部分是正确的。

3 个答案:

答案 0 :(得分:0)

听起来你可能在这些php文件之间存在一些冲突。根本不应该将不同的php包含在隐藏的div中。无论如何,你可以通过两种方式做到这一点:

  1. 通过php预先包含所有内容,只需在浏览器上显示div(听起来就像你正在做的那样)
  2.   

    < div id ='mydiv1'style ='display:none'>   < ?php include('myfile1'); ?>   < / DIV>

         

    < div id ='mydiv2'style ='display:none'>   < ?php include('myfile2'); ?>   < / DIV>

    等。 然后,在某些点击事件中,你会做$(“#div1”)。show()等等。

    2)简单地创建你的div为空并将click事件绑定到特定div的.load或.get调用

    所以假设你有两个按钮btn1和btn2用于那些div。

    $('#btn1').bind('click', function() {
        $("#div1").get('myfile1');
    $("#div1").show();
    });
    

    第二个解决方案的唯一问题是,每次单击按钮时,它将转到服务器获取数据。

    <强>更新

    尝试在.load或.get中指定完整路径只是为了安全。这也许会给你带来麻烦。这是一个简单的例子(我使用的是codeIgniter,因此是base_url()引用)

         $('#btn_trigger').live('click', function(){ 
                $("#dowrInsert").load("<?php echo base_url();?>auth/index"); 
        });
    
    <input type='button' value='Trigger' id='btn_trigger'/>
    <div id="dowrInsert">
        My text
    </div>
    

    这很好用

答案 1 :(得分:0)

JQuery .load http://api.jquery.com/load/ |我想你必须尝试使用​​.load =)

答案 2 :(得分:0)

好吧,我设法解决了导致我需要使用.load()方法的冲突。

我确信我的wordpress主题中有一些东西会导致这个问题陷入困境,所以感谢所有帮助我寻找解决方法的人,但我设法无意中解决了我最初的冲突,所以不再需要.load()方法作为解决方法。