0

我有一个 php 文件,它通过单击事件使用 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 代码。我希望这很清楚。

谢谢

4

2 回答 2

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";
}
于 2013-10-01T18:42:26.413 回答
0

您可以在 Ajax 调用中添加 GET 参数:

if (!isset($_GET['repeat']) || $_GET['repeat'] != 'false') {
   echo '$.ajax("test.php?repeat=false", ...)';
}

(假设您使用 jQuery)。当然,POST如果您愿意,也可以使用参数。这样,只有在没有通过 Ajax 调用的情况下,php 才会打印 jQuery Ajax 调用。

于 2013-10-01T18:42:36.360 回答