当另一个ajax调用改变div的内容时,如何自动更改div x(带ajax)的内容?

时间:2012-10-31 05:39:43

标签: php javascript ajax

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

我有两个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文件之后加载,但显然java无法从一个内容中读取ajax输出。

  6. 以下是我的尝试:

    1. 尝试将函数调用放在php文件末尾的javascript <script>标记中,但由于上述原因而无效。
    2. 我试图将该函数作为php文件最后一个div的onload事件来调用,但它不起作用。
    3. 我尝试将onchange添加到div2元素,这样每当通过ajax更改内容时,第二个ajax脚本就会运行,但它不起作用。
    4. 我试图从第一个ajax函数的最后调用我的第二个ajax函数,但这阻止了我的第一个函数正常工作。
    5. 奇怪的是,如果我将该函数附加到php文件中的onclick事件,并在加载php时从div2点击它,它可以工作,并更新div3内容。
    6. 我需要做的就是找到一种方法,在加载php页面或div2内容发生变化时,将onclick函数调用转换为自动调用。

      补充说明: 1.如果可以的话,我想远离eval,因为我试图学习它,但开发适当的正则表达式和所有其他细节的方法对我来说似乎很复杂。可能需要几个小时来制定一个合适的方法,即使这样也可能不起作用....我宁愿坚持我忽略或可能没有正确实施的所有可能的简单选项。 我会像鹰一样看这个帖子,所以如果你需要额外的细节,请随时提出要求。我没有发布我的代码,因为它是相当冗长的,很难在一个更简单的例子中封装问题的本质。

      谢谢!

1 个答案:

答案 0 :(得分: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方法,我是一个很大的粉丝