0

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

重复请求萤火虫

我用这个:

仪表板.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>

函数.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();
   }
});*/

});

服务端.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>

配置文件

<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 文件,我想分享。谢谢

4

1 回答 1

0

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

解决方案:不要在每个 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");}

});
于 2012-07-08T00:50:21.880 回答