我有一个php文件,它通过click事件使用ajax调用自身。 由于这些调用,jquery代码(我在脚本标记内的所有代码)被重复,因此jquery代码将被执行多次。 我想在第一次调用php文件时才执行脚本。
请帮我解决这个问题。 我也可以发布部分代码。
提前致谢!
对不起我的疏忽。我使用像这样创建的jquery选项卡
<div class='tabs'>
<ul>
<li><a href="functions.php?id=1&table=1&tab=First">First</a></li>
<li><a href="functions.php?id=2&table=2&tab=Second">Second</a></li>
<li><a href="functions.php?id=3&table=1&tab=Third">Third</a></li>
</ul>
<ul>
<li><a href="functions.php?id=11&table=1&tab=First">First</a></li>
<li><a href="functions.php?id=12&table=2&tab=Second">Second</a></li>
<li><a href="functions.php?id=13&table=1&tab=Third">Third</a></li>
</ul>
</div>
php文件functions.php有jquery ajax调用
$( ".decision_button > input" ).click(function() {
var responseSubmit = $.ajax({
url: 'functions.php',
type: 'POST',
data:'comments='+comment_select,
async: false
}).responseText;});
因此,每次单击href时,都会调用该文件并重复jquery代码。 我希望这很清楚。
谢谢
答案 0 :(得分:1)
从JavaScript(AJAX)调用页面时,向您添加一些参数url,因此PHP脚本可以区分是由用户调用还是由“自身”调用。例如,如果您的页面是来自JavaScript的your-domain.com/index.php,则将其打开为your-domain.com/index.php?ajax=1。
然后在PHP中找到您回显JavaScript代码的所有位置并将其放入if语句:
if(!isset($_GET['ajax'])){
echo "JAVASCRIPT code goes here";
}
答案 1 :(得分:0)
您可以在Ajax调用中添加GET参数:
if (!isset($_GET['repeat']) || $_GET['repeat'] != 'false') {
echo '$.ajax("test.php?repeat=false", ...)';
}
(假设你使用jQuery)。
当然,如果您愿意,也可以使用POST
参数。这样,只有在没有通过Ajax调用时,php才会打印jQuery Ajax调用。