【问题标题】:Ajax sending to php then echo in divAjax 发送到 php 然后在 div 中回显
【发布时间】:2011-12-13 17:15:28
【问题描述】:

我有一个 ajax 函数,它将变量 - num - 发送到 php 脚本,然后在 id 为“status”的 div 中回显 num 的值。

首先发生的是用户发了一个帖子,我运行所有必要的查询并在一个名为“posts”的 div 中显示用户的帖子(使用一个 while 循环,所以每个帖子都在一个 div 中,具有相同的 id 但 div 的在一个和另一个之下)。我希望 ajax 功能可以在这些“帖子” div 中的每一个中工作(每个“帖子” div 都包含两个 js 按钮 - onclick - 管理 ajax 功能以及“状态” div)

但是,每次我单击其中一个按钮时,假设在显示的最底部最可见的“帖子”div 中(单击的按钮调用 ajax/js 函数),该函数在最顶部的“帖子”div 中执行第一个“状态” div 应该显示在我单击按钮的最底部 div 中。

【问题讨论】:

  • 发布你的 jQuery。我的猜测是您有多个 ID 为“status”的 div。
  • 您能否发布您的代码或示例链接
  • 听起来你没有引用 DIV 的独特方式,所以它只是抓取第一个匹配元素。
  • @Treffynnon,是的,有什么方法可以唯一地识别它们吗?

标签: html ajax


【解决方案1】:

编辑:对不起,我假设您使用的是 jQuery。我的错。

您应该使用类而不是 ID。如果你使用一个 ID,jquery 只会对 DOM 中的第一个有影响。每页只能使用一次 ID。

使用类,然后引用您要编辑的 div,不仅通过类名,还通过对您正在与之交互的帖子 div 的某种引用。

$('.posts .button').click(function() {
  //do ajax stuff...
  $(this).parent('div').find('.status').html(data);
}

更新代码:

// .posts should be the class of the posts div
// .button should be the class of the button on which you are activating your ajax
$('.posts .button').click(function() { 
    $.post('your ajax post URL', function(data) {
       $(this).parent('div').find('.status').html(data);
    })
});

【讨论】:

  • 如果您使用 jQuery ajax 函数,该函数将是 ajax 的返回值。查看此页面上的第二个代码 sn-p:api.jquery.com/jQuery.post 抱歉,如果我假设您使用的是 jQuery。我显然会推荐它。它会让你做你想做的事情变得非常容易。
  • 如果我理解正确此示例获取请求的 HTML sn-p 并将其插入页面。需要 ajax 函数在指定的“状态”div 中工作,而不是它抓取的第一个“状态”div,我也可以使用它吗?
  • 在这个 jQuery 示例中,$(this) 表示被点击的实际按钮,父级是 .posts div。这是引用单击按钮的实际 div,而不是页面上的第一个 div。下一步是 find('.status'),我们仍然在按钮被点击的 .posts div 中,所以当我们修改它时,我们只是修改那个特定的 .status 元素。这就是@Treffynnon 所说的“唯一引用 div”。您应该查看一些 jQuery ajax 示例和 jQuery 选择器。你可以用大约 8 行 jQuery 来完成你需要做的所有事情。
猜你喜欢
  • 2013-08-23
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多