PHP:在div中包含php文件时重复请求

时间:2012-07-08 00:38:41

标签: php html include request

当点击菜单项以在div中加载名为 #layouts 的div文件时,我遇到了一个大问题,因为每次点击都会重复请求,如下图所示:

duplicate requests firebug

我用这个:

dashboard.php

<nav id="navigation">
    <ul>
    <li><a href="#">Catálogo de... >></a>
        <ul>
        <li><a href="#s1">Perfiles</a></li>
        <li><a href="#s2">Clientes</a></li>
        <li><a href="#s3">Usuarios</a></li>
        <li><a href="#s4">Marcas,Productos,SubProductos</a></li>
        </ul>
    <div class="clear"></div>
    </li>
    <li><a href="#s5">Captura de Póliza</a></li>
    <li><a href="#s6">Levantamiento de Servicio</a></li>
    </ul>
</nav>
<div id="layouts">
    <h1>Seleccione una opción del menú</h2>
</div>

functions.js

$('#navigation li a').click(function() {
    $('#loading').show();
    page = $(this).attr('href');
    if (page == "#s1") {$('#layouts').load("./catperfiles.php");}
        else if (page == "#s2") {$('#layouts').load("./catclientes.php");}
            else if (page == "#s3") {$('#layouts').load("./catusuarios.php");}
                else if (page == "#s4") {$('#layouts').load("./catorganizacion.php");}
                    else if (page == "#s5") {$('#layouts').load("./poliza.php");}
                        else if (page == "#s6") {$('#layouts').load("./servicio.php");}

/*$.ajax({
    type: "GET",
    url: "./"+layout+".php",
    success: function(html) {
        $('#layouts').html(html);
        $('#loading').hide();
   }
});*/

});

servicio.php

<?php include 'config.php' ?>
<h1>Levantamiento del servicio</h1>
<h3>Elija una opción:</h3>
<input id="clientexist" name="typeclient" value="ce" type="radio" />
<label for="clientexist">Cliente existente</label>

<input id="clientnew" name="typeclient" value="cn" type="radio"/>
<label for="clientnew">Cliente nuevo</label>

<div id="areaTypeClient"></div>

的config.php

<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css" type="text/css"/>
<script src="js/jquery-1.7.min.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>

奇怪的是,在标题

中没有这一行的php页面中
<?php include 'config.php' ?> 

这不是请求的重复。

如果你对这种类型的导航有更好的想法,包括div中的php文件,我想要分享。感谢

1 个答案:

答案 0 :(得分:0)

看起来你的ajax调用会为每个请求输出你的javascript,而每次请求都会附加一个新的额外点击处理程序,从而以指数方式递增每次点击的请求数。您的javascript代码或文件可能会在config.php文件中的某处引用。

解决方案:每次ajax调用都不要包含相同的javascript代码。或者,这将确保只处理一个点击处理程序:

$('#navigation li a').unbind('click').click(function() {
    $('#loading').show();
    page = $(this).attr('href');
    if (page == "#s1") {$('#layouts').load("./catperfiles.php");}
        else if (page == "#s2") {$('#layouts').load("./catclientes.php");}
            else if (page == "#s3") {$('#layouts').load("./catusuarios.php");}
                else if (page == "#s4") {$('#layouts').load("./catorganizacion.php");}
                    else if (page == "#s5") {$('#layouts').load("./poliza.php");}
                        else if (page == "#s6") {$('#layouts').load("./servicio.php");}

});