当点击菜单项以在div中加载名为 #layouts 的div文件时,我遇到了一个大问题,因为每次点击都会重复请求,如下图所示:
我用这个:
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文件,我想要分享。感谢
答案 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");}
});