我可以基于php条件触发ajax调用吗?

时间:2016-03-01 13:02:38

标签: javascript php jquery ajax

网页加载......

php循环显示第1层数据。

点击第1层 - > ajax调用第2层数据(html)

点击第2层 - >第二个ajax调用第3层数据(html)

一切正常。

我想要做的是在第一个ajax调用中根据条件php语句进行第二次ajax调用。如果第一个ajax调用只有1个结果,则启动第二个ajax调用。

伪代码帮助解释:

while(first_array) {
 $id = first_array['id'];
 echo '<button data="'.$id.'">first ajax call to tier 2 data</button>';
}

第2层(ajax1)

while(second_array) {
$id_2 = second_array['pid'];

    if ($result == 1) {

       //  trigger second ajax call to tier 3 //

    } else {
       echo '<button data="'.$id_2.'">second ajax call to tier 3 data</button>';
   }
}

这可能吗?

我理解服务器端php和客户端javascript。我意识到那里的障碍或限制。但是,当我启动第一个调用时,我可以在PHP中回应一些会激发辅助ajax调用的内容吗?

通过在第一个ajax调用的php中添加一个php函数并且条件调用该函数,我有点工作,否则不使用该函数。该函数只复制第二个ajax php。我不确定复制这样的代码是不是一个好主意。我倾向于不喜欢它,因为编辑需要多个位置来编辑一个项目。包含不起作用。

1 个答案:

答案 0 :(得分:0)

好的,我想我已经对它进行了分类。

Ajax Call 1包含一个查询。我修改了该查询以提取特定的行数以及其他数据。基于这些计数,我添加了一个条件,基本上是:

if ($theCount == 1) { 
    echo '<div class="dataholder opened">'; 
    myFunction();
    echo '</div>';
 } else { 
    echo '<div class="dataholder"></div>'; //populated by ajax call 2
 }

myFunction()与第二个ajax调用的代码基本相同。

这确实意味着我需要编辑2个位置,如果需要更改,但我目前没有直接看到这一点。基本上我可以只是将ajax调用中的php复制/粘贴到函数中,只调整连接的输出变量。