Php通过ajax调用多次调用自己

时间:2013-10-01 18:33:36

标签: php jquery ajax

我有一个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代码。 我希望这很清楚。

谢谢

2 个答案:

答案 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调用。