我已经为此工作了几个小时并且遇到了很多困难 - 无法找到解决方案。
我有两个 div。每当 div2 更改时,div3 必须相应地更改其内容。 Div2 是通过 ajax 更改的,因此当发生这种情况时,它必须触发另一个 ajax 调用来更改 div3。
详情如下:
- 我有 main.html,其中包含几个不同的可单击按钮。单击时,这些按钮中的每一个都会触发一个 ajax 函数进行加载,该函数在 div2 中输出一个 php 文件。
此 php 脚本输出数据库查询的结果,这些结果因单击 main.html 中的哪个按钮而异。
我有一个 div- div3,它应该显示当前 div 3 输出的一部分数据的内容。
因此从逻辑上讲,每当 div2 发生变化时,div3 的内容也必须相应地发生变化。
最初我以为我可以将对第二个 ajax 函数的函数调用放在 php 文件的末尾,这样它总是会在 php 文件之后立即加载,但显然无法从ajax 输出。
这是我尝试过的:
- 尝试在 javascript 中调用函数
<script>
php 文件末尾的标记,但由于上述原因没有起作用。 - 我试图将函数调用为
onload
php 文件最后一个 div 的事件,但它不起作用。 - 我尝试添加
onchange
到 div2 元素,这样每当通过 ajax 更改内容时,第二个 ajax 脚本就会运行,但它不起作用。 - 我试图从第一个 ajax 函数的最后调用我的第二个 ajax 函数,但这阻止了我的第一个函数正常工作。
- 奇怪的是,如果我将函数附加到
onclick
php 文件中的事件,并在 php 加载后从 div2 单击它,它工作并更新 div3 内容。
我需要做的就是找到一种方法来改变 onclick
每当 php 页面加载或 div2 内容更改时,函数都会自动调用一些东西。
补充说明:
1.我想远离eval
如果可以的话,因为我试图学习它,但是开发适当的正则表达式的方法和所有其他细节对我来说似乎非常复杂。我可能需要几个小时才能开发出一种合适的方法,即使那样也可能行不通……我宁愿坚持使用我忽略或可能未正确实现的所有可能的简单选项。
2. 我会密切关注这篇文章,所以如果您需要更多详细信息,请随时提出要求。我没有发布我的代码,因为它相当冗长并且很难在更简短的示例中概括问题的本质。
谢谢!
最佳答案
如果我没理解错的话,你可以试试这样:
$.ajax({
type:'post',
url:'url goes here',
data:{<insert data being passed>},
success:function(ret)
{
$('div y').html(ret); // populate div y
$.ajax({
type:'post',
url:'second url goes here',
data:{<insert data being passed>},
success:function(ret2)
{
$('div x').html(ret2); // populate div x
}
});
}
});
当然这是我非常喜欢的 jquery 方法
关于php - 当另一个ajax调用更改div y的内容时,如何自动更改div x(使用ajax)的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151859/