我有一个主页,view.php。在此页面上,我有两个对两个不同页面的ajax请求。例如,我有
<script>
functionName1(someData1,someDiv1)
</script>
在view.php中。它的作用是将数据和div传递给jQuery函数,该函数将请求另一个php文件(php文件1),并传递数据以创建一些HTML并在数据库中进行某些更改,然后在HTML中回显HTML。 div。
然后在上面的代码之后,我有
<script>
functionName2(someData2,someDiv2)
</script>
在view.php中。它将其他一些数据传递到另一个php文件(php文件2)并创建HTML并在someDiv2中回显。
Ajax 1将在数据库中进行更改,而ajax 2创建的HTML应反映此更改。但是问题是,不会。 HTML似乎没有对数据库进行任何更改,但是我知道它已经更改,因为我检查了数据库。我访问php文件2并通过url传递数据,它可以创建正确的HTML。因此,当我将两个ajax放在同一页面(view.php)时,我不明白为什么它不起作用。
我尝试的一件事是在php文件2中睡眠几秒钟,然后它将创建正确的HTML,以反映数据库的更改。因此,我想知道问题是否出在第二个ajax请求是否与第一个ajax请求如此接近,以至于第一个ajax请求没有由数据库保存(我本人对此表示怀疑,但还有其他疑问)。
最佳答案
正如评论者StaticVoid提到的那样,ajax调用是异步的。最有可能发生的情况是functionName1触发了其ajax调用,然后非常(非常)不久之后,functionName2触发了其ajax调用。如果希望仅在第一个调用返回后才进行第二个调用,则需要a)使ajax同步,或b)将对functionName2的调用放在functionName1中的ajax请求的回调中。
关于php - 同一页上有两个ajax,但是第二个没有得到任何变化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24128850/