1

我已经为此工作了几个小时并且遇到了很多困难 - 无法找到解决方案。

我有两个div。div3 必须在 div2 更改时相应更改其内容。div2 是通过 ajax 更改的,因此当发生这种情况时,它必须触发另一个 ajax 调用来更改 div3。

以下是详细信息:

  1. 我有 main.html,其中包含几个不同的可点击按钮。onclick,这些按钮中的每一个都会触发一个ajax函数加载,在div2中输出一个php文件。
  2. 此 php 脚本输出数据库查询的结果,根据单击 main.html 中的哪个按钮而有所不同。

  3. 我有一个 div- div3,它应该显示当前 div 3 输出的一部分数据的内容。

  4. 因此,从逻辑上讲,每当 div2 发生变化时,div3 的内容也必须相应地发生变化。

  5. 最初我认为我可以将函数调用放在 php 文件末尾的第二个 ajax 函数,这样它总是会在 php 文件之后立即加载,但显然无法从 ajax 输出中读取 java。

这是我尝试过的:

  1. 尝试在 php 文件末尾的 javascript 标记中放置函数调用<script>,但由于上述原因没有工作。
  2. 我试图将该函数调用为onloadphp 文件的最后一个 div 的事件,但它不起作用。
  3. 我尝试添加onchange到 div2 元素,以便每当通过 ajax 更改内容时,第二个 ajax 脚本就会运行,但它不起作用。
  4. 我试图从第一个 ajax 函数的最后调用我的第二个 ajax 函数,但这阻止了我的第一个函数正常工作。
  5. 奇怪的是,如果我将该函数附加到onclickphp 文件中的一个事件,并在 php 加载后从 div2 中单击它,它就可以工作,并更新 div3 内容。

我需要做的就是找到一种方法,onclick在 php 页面加载或 div2 内容更改时自动将该函数调用转换为自动调用。

附加说明: 1. 如果可以的话,我想远离eval它,因为我试图学习它,但开发适当的正则表达式的方法和所有其他细节对我来说似乎非常复杂。我可能需要几个小时来开发一种合适的方法,即使那样也可能不起作用....我更愿意坚持我忽略或可能没有正确实施的所有可能的简单选项。2. 我会像鹰一样看这篇文章,所以如果您需要更多详细信息,请随时提出要求。我没有发布我的代码,因为它相当冗长且难以在更简短的示例中封装问题的性质。

谢谢!

4

1 回答 1

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 方法

于 2012-10-31T05:47:05.013 回答